Skip to content

Bug: mergeASARs is changing file permissions in macOS MAS #135

Open
@ollm

Description

@ollm

@electron/universal doesn't maintain all file permissions when merging app-x64.asar.unpacked and app-arm64.asar.unpacked to app.asar.unpacked (In my case used via electron-builder)

Related: electron-userland/electron-builder#8943

Test case repo: https://github.com/ollm/electron-builder-permissions-bug

mergeASARs: true

npm run build-mac-store
> electron-builder-permissions-bug@1.0.0 build-mac-store
> electron-builder --universal --mac mas && npm run postbuild
  • electron-builder  version=26.0.14 os=23.5.0
  • loaded configuration  file=package.json ("build" field)
  • description is missed in the package.json  appPackageFile=/Users/llopart/Documents/github/electron-builder-permissions-bug/package.json
  • writing effective config  file=dist/builder-effective-config.yaml
  • executing @electron/rebuild  electronVersion=36.1.0 arch=x64 buildFromSource=false appDir=./
  • installing native dependencies  arch=x64
  • completed installing native dependencies
  • packaging       platform=mas arch=x64 electron=36.1.0 appOutDir=dist/mas-universal-x64-temp
  • default Electron icon is used  reason=application icon is not set
  • executing @electron/rebuild  electronVersion=36.1.0 arch=arm64 buildFromSource=false appDir=./
  • installing native dependencies  arch=arm64
  • completed installing native dependencies
  • packaging       platform=mas arch=arm64 electron=36.1.0 appOutDir=dist/mas-universal-arm64-temp
  • packaging       platform=mas arch=universal electron=36.1.0 appOutDir=dist/mas-universal
  • signing         file=dist/mas-universal/electron-builder-permissions-bug.app platform=darwin type=distribution identityName=Developer ID Application: Oleguer Llopart (XXXXXXXXX) identityHash=XXXXXXXXXXXXXXXXXXXXXXXXXXX provisioningProfile=none
  • skipped macOS notarization  reason=`notarize` options were unable to be generated
  • signing         file=dist/mas-universal/electron-builder-permissions-bug.app platform=mas type=distribution identityName=Apple Distribution: Oleguer Llopart (XXXXXXXXX) identityHash=XXXXXXXXXXXXXXXXXXXXXXXXXXX provisioningProfile=none
> electron-builder-permissions-bug@1.0.0 postbuild
> node scripts/test-postbuild.js
Original x64                               | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x
Original arm64                             | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x
Darwin Mas x64 (app.asar.unpacked)         | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x
Darwin Mas arm64 (app.asar.unpacked)       | F:OK | R:OK | W:OK | X:-- | Exists:OK | -rw-r--r--
Darwin Mas x64 (app-x64.asar.unpacked)     | F:-- | R:-- | W:-- | X:-- | Exists:-- | 
Darwin Mas arm64 (app-arm64.asar.unpacked) | F:-- | R:-- | W:-- | X:-- | Exists:-- | 

mergeASARs: false

npm run build-mac-store
> electron-builder-permissions-bug@1.0.0 build-mac-store
> electron-builder --universal --mac mas && npm run postbuild
  • electron-builder  version=26.0.14 os=23.5.0
  • loaded configuration  file=package.json ("build" field)
  • description is missed in the package.json  appPackageFile=/Users/llopart/Documents/github/electron-builder-permissions-bug/package.json
  • writing effective config  file=dist/builder-effective-config.yaml
  • executing @electron/rebuild  electronVersion=36.1.0 arch=x64 buildFromSource=false appDir=./
  • installing native dependencies  arch=x64
  • completed installing native dependencies
  • packaging       platform=mas arch=x64 electron=36.1.0 appOutDir=dist/mas-universal-x64-temp
  • default Electron icon is used  reason=application icon is not set
  • executing @electron/rebuild  electronVersion=36.1.0 arch=arm64 buildFromSource=false appDir=./
  • installing native dependencies  arch=arm64
  • completed installing native dependencies
  • packaging       platform=mas arch=arm64 electron=36.1.0 appOutDir=dist/mas-universal-arm64-temp
  • packaging       platform=mas arch=universal electron=36.1.0 appOutDir=dist/mas-universal
  • signing         file=dist/mas-universal/electron-builder-permissions-bug.app platform=darwin type=distribution identityName=Developer ID Application: Oleguer Llopart (XXXXXXXXX) identityHash=XXXXXXXXXXXXXXXXXXXXXXXXXXX provisioningProfile=none
  • skipped macOS notarization  reason=`notarize` options were unable to be generated
  • signing         file=dist/mas-universal/electron-builder-permissions-bug.app platform=mas type=distribution identityName=Apple Distribution: Oleguer Llopart (XXXXXXXXX) identityHash=XXXXXXXXXXXXXXXXXXXXXXXXXXX provisioningProfile=none
> electron-builder-permissions-bug@1.0.0 postbuild
> node scripts/test-postbuild.js
Original x64                               | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x
Original arm64                             | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x
Darwin Mas x64 (app.asar.unpacked)         | F:-- | R:-- | W:-- | X:-- | Exists:-- | 
Darwin Mas arm64 (app.asar.unpacked)       | F:-- | R:-- | W:-- | X:-- | Exists:-- | 
Darwin Mas x64 (app-x64.asar.unpacked)     | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x
Darwin Mas arm64 (app-arm64.asar.unpacked) | F:OK | R:OK | W:OK | X:OK | Exists:OK | -rwxr-xr-x

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions