Electron builder 代码签名:bundle 格式无法识别、无效或不合适

Posted

技术标签:

【中文标题】Electron builder 代码签名:bundle 格式无法识别、无效或不合适【英文标题】:Electron builder code signing: bundle format unrecognized, invalid, or unsuitable 【发布时间】:2016-12-21 07:05:30 【问题描述】:

我尝试在 Mac 上使用 electron-builder 构建我的电子应用程序并进行代码签名时遇到此错误。在钥匙串上正确设置了身份。

Error: Command failed: codesign --sign Company Name --force /Users/nterms/Projects/my-app/dist/mac/MyApp.app/Contents/Resources/app.asar.unpacked/node_modules/electron-prebuilt/dist/Electron.app/Contents/Frameworks/Electron Framework.framework
/Users/nterms/Projects/my-app/dist/mac/MyApp.app/Contents/Resources/app.asar.unpacked/node_modules/electron-prebuilt/dist/Electron.app/Contents/Frameworks/Electron Framework.framework: bundle format unrecognized, invalid, or unsuitable

at ChildProcess.exithandler (child_process.js:213:12)
at emitTwo (events.js:87:13)
at ChildProcess.emit (events.js:172:7)
at maybeClose (internal/child_process.js:827:16)
at Socket.<anonymous> (internal/child_process.js:319:11)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at Pipe._onclose (net.js:477:12)
From previous event:
at tsAwaiter (/Users/nterms/Projects/my-app/node_modules/electron-builder/src/util/awaiter.ts:10:47)
at MacPackager.sign (/Users/nterms/Projects/my-app/node_modules/electron-builder/src/macPackager.ts:100:75)
at /Users/saranga/Projects/my-app/node_modules/electron-builder/src/macPackager.ts:80:26
From previous event:
at MacPackager.<anonymous> (/Users/nterms/Projects/my-app/node_modules/electron-builder/src/macPackager.ts:80:10)
at next (native)
From previous event:
at tsAwaiter (/Users/nterms/Projects/my-app/node_modules/electron-builder/src/util/awaiter.ts:10:47)
at Object.build (/Users/nterms/Projects/my-app/node_modules/electron-builder/src/builder.ts:195:52)
at Object.<anonymous> (/Users/nterms/Projects/my-app/node_modules/electron-builder/src/build-cli.ts:27:28)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:968:3

但是,在没有代码签名的情况下打包时,构建可以在同一个应用程序上顺利进行。

我使用的是装有 OSX El Captain (10.11.6) 的 Mac,XCode 已更新到最新版本。

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

好的,我找到了问题并解决了。将其发布在此处,以便对遇到相同问题的其他人有所帮助。

由于electron-prebuilt 安装在生产node_modules 文件夹中而引发错误。它应该只安装在开发模块中。

我从生产模块中删除了electron-prebuilt,它现在可以正常工作了。

【讨论】:

正确!我不得不将一些包从dependencies 移动到devDependencies,包括node-sass-chokidarreact-scripts。幸运的是,错误消息提供了一些线索,说明 node_modules 中的哪个包导致了问题。对我来说,它是fsevents,它是上述两个包的依赖项。

以上是关于Electron builder 代码签名:bundle 格式无法识别、无效或不合适的主要内容,如果未能解决你的问题,请参考以下文章

使用 Electron 对 macOS 应用程序进行代码签名

electron mac签名 - 针对electron-builder的自动更新

Mac Electron App 签名后打开闪退

electron electron-builder 构建

使用electron-builder时如何修改app.asar的文件夹结构?

03、electron-builder打包命令报错