【问题标题】:When I download my validly codesigned app from a browser, it says it's damaged当我从浏览器下载经过有效代码签名的应用程序时,它说它已损坏
【发布时间】:2016-09-16 20:32:24
【问题描述】:

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

这里发生了什么?

【问题讨论】:

  • 您在“系统偏好设置”->“安全和隐私”->“允许从以下位置下载应用程序”的常规设置是什么?
  • @PhillipMills “Mac App Store 和确定的开发者”。当我运行spctl 命令时,它返回“MyApp.app/:accepted source=Developer ID”,所以我假设我是“已识别的开发者”。

标签: macos code-signing electron


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    相关资源
    最近更新 更多