@@ -10,7 +10,7 @@ import { DIR_TARGET, Platform, Target } from "./core"
1010import { AfterPackContext , ElectronPlatformName } from "./index"
1111import { MacConfiguration , MasConfiguration } from "./options/macOptions"
1212import { Packager } from "./packager"
13- import { chooseNotNull , PlatformPackager } from "./platformPackager"
13+ import { chooseNotNull , DoPackOptions , PlatformPackager } from "./platformPackager"
1414import { ArchiveTarget } from "./targets/ArchiveTarget"
1515import { PkgTarget , prepareProductBuildArgs } from "./targets/pkg"
1616import { createCommonTarget , NoOpTarget } from "./targets/targetFactory"
@@ -107,32 +107,35 @@ export class MacPackager extends PlatformPackager<MacConfiguration> {
107107 }
108108 }
109109
110- protected async doPack (
111- outDir : string ,
112- appOutDir : string ,
113- platformName : ElectronPlatformName ,
114- arch : Arch ,
115- platformSpecificBuildOptions : MacConfiguration ,
116- targets : Array < Target >
117- ) : Promise < any > {
110+ protected async doPack ( config : DoPackOptions < MacConfiguration > ) : Promise < any > {
111+ const { outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets } = config
112+
118113 switch ( arch ) {
119114 default : {
120- return super . doPack ( outDir , appOutDir , platformName , arch , platformSpecificBuildOptions , targets )
115+ return super . doPack ( config )
121116 }
122117 case Arch . universal : {
123118 const outDirName = ( arch : Arch ) => `${ appOutDir } -${ Arch [ arch ] } -temp`
119+ const options = {
120+ ...config ,
121+ options : {
122+ sign : false ,
123+ disableAsarIntegrity : true ,
124+ disableFuses : true ,
125+ } ,
126+ }
124127
125128 const x64Arch = Arch . x64
126129 const x64AppOutDir = outDirName ( x64Arch )
127- await super . doPack ( outDir , x64AppOutDir , platformName , x64Arch , platformSpecificBuildOptions , targets , false , true )
130+ await super . doPack ( { ... options , appOutDir : x64AppOutDir , arch : x64Arch } )
128131
129132 if ( this . info . cancellationToken . cancelled ) {
130133 return
131134 }
132135
133136 const arm64Arch = Arch . arm64
134137 const arm64AppOutPath = outDirName ( arm64Arch )
135- await super . doPack ( outDir , arm64AppOutPath , platformName , arm64Arch , platformSpecificBuildOptions , targets , false , true )
138+ await super . doPack ( { ... options , appOutDir : arm64AppOutPath , arch : arm64Arch } )
136139
137140 if ( this . info . cancellationToken . cancelled ) {
138141 return
@@ -177,6 +180,8 @@ export class MacPackager extends PlatformPackager<MacConfiguration> {
177180 return
178181 }
179182
183+ await this . doAddElectronFuses ( packContext )
184+
180185 await this . doSignAfterPack ( outDir , appOutDir , platformName , arch , platformSpecificBuildOptions , targets )
181186 break
182187 }
@@ -202,7 +207,7 @@ export class MacPackager extends PlatformPackager<MacConfiguration> {
202207
203208 const targetOutDir = path . join ( outDir , `${ targetName } ${ getArchSuffix ( arch , this . platformSpecificBuildOptions . defaultArch ) } ` )
204209 if ( prepackaged == null ) {
205- await this . doPack ( outDir , targetOutDir , "mas" , arch , masBuildOptions , [ target ] )
210+ await this . doPack ( { outDir, appOutDir : targetOutDir , platformName : "mas" , arch, platformSpecificBuildOptions : masBuildOptions , targets : [ target ] } )
206211 await this . sign ( path . join ( targetOutDir , `${ this . appInfo . productFilename } .app` ) , targetOutDir , masBuildOptions , arch )
207212 } else {
208213 await this . sign ( prepackaged , targetOutDir , masBuildOptions , arch )
@@ -212,7 +217,14 @@ export class MacPackager extends PlatformPackager<MacConfiguration> {
212217 if ( ! hasMas || targets . length > 1 ) {
213218 const appPath = prepackaged == null ? path . join ( this . computeAppOutDir ( outDir , arch ) , `${ this . appInfo . productFilename } .app` ) : prepackaged
214219 if ( prepackaged == null ) {
215- await this . doPack ( outDir , path . dirname ( appPath ) , this . platform . nodeName as ElectronPlatformName , arch , this . platformSpecificBuildOptions , targets )
220+ await this . doPack ( {
221+ outDir,
222+ appOutDir : path . dirname ( appPath ) ,
223+ platformName : this . platform . nodeName as ElectronPlatformName ,
224+ arch,
225+ platformSpecificBuildOptions : this . platformSpecificBuildOptions ,
226+ targets,
227+ } )
216228 }
217229 this . packageInDistributableFormat ( appPath , arch , targets , taskManager )
218230 }
0 commit comments