当我从浏览器下载有效的代码签名应用程序时,它说它已损坏

时间:2016-05-19 19:07:23

标签: macos code-signing electron

我有一个Mac OSX电子应用程序,我使用电子建设者签名。我的证书有效,直到2020年才会到期。当我构建应用程序的.app和.dmg文件并运行spctl --assess --verbose MyApp.app/时,它会显示“已接受”。当我从浏览器下载包含.app的dmg或zip文件并运行它时,会出现一个对话框,说这个应用程序已损坏,可以选择将其移至废纸篓。我的应用程序之前发布的没有此类问题的版本现在抛出此错误,尽管仍在本地传递spctl -acodesign --verify --verbose MyApp.app/也说它有效。此外,如果我在本地运行应用程序,它不会抛出这些错误。

这里发生了什么?

1 个答案:

答案 0 :(得分:0)

签名后,嵌套的应用程序依赖项以某种方式更改,这使签名无效。要检查此项,您必须运行codesign --verify --deep MyApp.app/--deep标志通过嵌套依赖项进行递归并验证它们。

从互联网下载应用程序的原因将触发Gatekeeper安全检查,否则将不会发生。对于使用电子构建器的电子应用程序,已添加深度代码签名验证,请参阅此处的详细信息:https://github.com/electron-userland/electron-osx-sign/issues/42