【问题标题】:Why is my code signed dmg is blocked by Chrome and Gatekeeper in Mac?为什么我的代码签名 dmg 被 Mac 中的 Chrome 和 Gatekeeper 阻止?
【发布时间】:2019-07-14 04:53:44
【问题描述】:

我对一个 dmg 文件进行了代码签名并将其上传到谷歌云存储。该文件在我的 Mac 中不被视为具有威胁性,但在其他 Mac 中,chrome 浏览器会阻止下载该文件,并将其视为恶意软件。在尝试在除用于对其进行代码签名的 Mac 之外的任何 Mac 中安装 dmg 时,Gatekeeper 会阻止安装。 dmg 的未签名版本工作得很好,并且不被 chrome 或 Gatekeeper 视为恶意软件。在这方面我很菜鸟。我找不到它背后的任何原因。

我按照this SO 问题对 dmg 进行了代码签名。当我使用以下命令检查它时 -

spctl -a -t open --context context:primary-signature -v path/to/dmg

上述命令的输出是 -

path/to/dmg: accepted
source=Developer ID

【问题讨论】:

    标签: macos codesign dmg


    【解决方案1】:

    假设您拥有 Apple 颁发的有效开发者 ID 证书,请查看Notarizing Your App Before Distribution。

    从 macOS 10.14.5 开始,所有新的或更新的内核扩展以及来自新开发者的所有软件都必须经过公证才能使用 Developer ID 进行分发。从 macOS 10.15 开始,所有软件默认都需要公证。

    在部署您的软件之前,您现在还必须将其发送给 Apple 进行公证。如果您最近才创建开发者 ID,Gatekeeper 不会在没有附上公证票的情况下运行您的代码签名软件。

    Apple 在Customizing the Notarization Workflow 的命令行中提供了有关如何从命令行执行此操作的良好说明(请确保将--timestamp 和-o runtime 选项与codesign 命令一起使用)。

    如果您没有 Apple 开发者帐户(并且正在使用自签名证书),那么您将在代码签名、公证和分发您的软件之前获得一个。拥有帐户后,请参阅Maintain Signing Assets,了解有关如何在您的钥匙串上获取 Apple 颁发的证书的说明。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      • 2011-08-16
      • 2017-01-26
      • 1970-01-01
      • 2021-07-28
      • 1970-01-01
      相关资源
      最近更新 更多