签署、公证及;Stapeled ElectronJS(9.0.4)应用程序崩溃EXC_崩溃(代码签名无效)(electron builder)

签署、公证及;Stapeled ElectronJS(9.0.4)应用程序崩溃EXC_崩溃(代码签名无效)(electron builder),electron,electron-builder,xcode12,dmg,notarize,Electron,Electron Builder,Xcode12,Dmg,Notarize,我将应用程序更新为Electron(9.0.4)和Electron builder 22.8.0 我们构建并打包成一个DMG,当我打开它时,我得到了信息 签字、公证和装订正确 当我打开它时,它与消息一起崩溃 EXC_崩溃(代码签名无效) 我的electron-build.yaml为osx提供了以下代码片段 mac: identity: XXXXX (valid Developer Application from Keychain) hardenedRuntime: tr

我将应用程序更新为Electron(9.0.4)和Electron builder 22.8.0

我们构建并打包成一个DMG,当我打开它时,我得到了信息

签字、公证和装订正确

当我打开它时,它与消息一起崩溃

EXC_崩溃(代码签名无效)

我的electron-build.yaml为osx提供了以下代码片段

mac:
      identity: XXXXX (valid Developer Application from Keychain)
      hardenedRuntime: true
      gatekeeperAssess: false
      target:
        - target: dmg
          arch:
            - x64
      type: distribution
      icon: installer.ico
    dmg:
      sign: true
如果我跑

spctl -vvv --assess --type exec electron/dist/mac/xxxx.app it says

electron/dist/mac/XXXXX.app/: accepted
source=Notarized Developer ID
origin=Developer ID Application: XXXXX
如果我跑

spctl -vvv --assess --type exec electron/dist/XXXX.dmg
包装上写着

electron/dist/XXXXXX.dmg: rejected (the code is valid but does not seem to be an app)
origin=Developer ID Application: XXXXX
我总是能够在XCode之外手动签署dmg,但由于ElectronJS和electron builder的更新,我再也不能这样做了。BigSur上关于权限的消息也是新的

这是electron builder的输出

  • electron-builder  version=22.9.1 os=20.1.0
  • loaded configuration  file=/Users/XXXXXXX/Sites/klic-viewer-frontend/electron/electron-builder.yml
  • writing effective config  file=electron/dist/builder-effective-config.yaml
  • packaging       platform=darwin arch=x64 electron=9.0.4 appOutDir=electron/dist/mac
  • signing         file=electron/dist/mac/XXXXX.app identityName=Developer ID Application: XXXXX (valid Developer Application from Keychain) identityHash=XXXXXX provisioningProfile=none
  • building        target=DMG arch=x64 file=electron/dist/XXXXX.dmg
应享权利:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
    <true/>
</dict>
</plist>

com.apple.security.app-sandbox
com.apple.security.cs.allow-unsigned-executable-memory
如何修复我的应用程序,使其在没有任何崩溃的情况下再次运行


注意:当我在Big Sur上运行应用程序时,我收到一条额外的错误消息“您没有打开此应用程序的权限”,我认为这是与Big Sur相关的另一个问题?

我修复了该问题。这是de-Rightments.plist I中的一个旧密钥。我删除了这个com.apple.security.app-sandbox,它成功了