为什么Mac中的Chrome和Gatekeeper阻止了我的代码签名dmg?

时间:2019-07-14 04:53:44

标签: macos codesign dmg

我用代码签名了一个dmg文件,并将其上传到Google云端存储。该文件在我的Mac中不视为威胁,但在其他Mac中,Chrome浏览器会阻止将文件下载为恶意软件。尝试在除用于对其进行代码签名的Mac以外的任何Mac中安装dmg时,Gatekeeper会阻止安装。 dmg的未签名版本可以正常工作,Chrome和Gatekeeper均不将其视为恶意软件。在这方面,我很菜鸟。我找不到任何背后的原因。

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

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

以上命令的输出是-

path/to/dmg: accepted
source=Developer ID

1 个答案:

答案 0 :(得分:3)

假设您拥有Apple发行的有效的Developer ID证书,请签出Notarizing Your App Before Distribution

  

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

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

Apple在Customizing the Notarization Workflow的命令行中提供了很好的说明(请确保--timestamp命令中使用-o runtimecodesign选项)

如果您没有Apple Developer帐户(并且正在使用自签名证书),则在代码签名,公证和分发软件之前,您将获得一个。拥有帐户后,请参见Maintain Signing Certificates,以获取有关如何在钥匙串上获取Apple发行的证书的说明。