在 macOS 下,autoUpdater
使用的 Squirrel.Mac
要求应用必须进行代码签名,否则 macOS 出于安全性原因无法判断程序的修改是否来自攻击者
electron-osx-sign
支持在 macOS 为 electron 应用进行签名,electron-packager
内置了这一功能,只需指定 osxSign: true
即可。但是这种情况下,electron-osx-sign
默认只会使用 Developer ID 类型的代码签名,这类签名只有 Apple Developer Program 的年费会员才能签出。
普通的 Apple 开发者账户可以签出 Mac Developer 类型的签名用于调试。这种情况下可以手动指定签名给 electron-osx-sign
- 确保在 XCode 中签出过 Mac Developer 类型的签名。可以通过
security find-identity -p codesigning -v
命令确认 - 执行
spctl --master-disable
禁用默认的逻辑 - 在
electron-packager
的选项中指定osxSign: {identity: 'Mac Developer: [name] ([hash])'}
参考:https://github.com/electron-userland/electron-builder/issues/890