我用代码签名了一个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
答案 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 runtime
和codesign
选项)
如果您没有Apple Developer帐户(并且正在使用自签名证书),则在代码签名,公证和分发软件之前,您将获得一个。拥有帐户后,请参见Maintain Signing Certificates,以获取有关如何在钥匙串上获取Apple发行的证书的说明。