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-chokidar
和react-scripts
。幸运的是,错误消息提供了一些线索,说明 node_modules
中的哪个包导致了问题。对我来说,它是fsevents
,它是上述两个包的依赖项。以上是关于Electron builder 代码签名:bundle 格式无法识别、无效或不合适的主要内容,如果未能解决你的问题,请参考以下文章
使用 Electron 对 macOS 应用程序进行代码签名
electron mac签名 - 针对electron-builder的自动更新