为什么我的代码签名 dmg 被 Chrome 和 Mac 中的 Gatekeeper 阻止?
Why is my code signed dmg is blocked by Chrome and Gatekeeper in Mac?
我对一个 dmg 文件进行了代码签名,并将其上传到 google 云存储。该文件在我的 Mac 中未被视为威胁,但在其他 Mac 中 chrome 浏览器阻止下载该文件,将其视为恶意软件。在尝试将 dmg 安装到除用于对其进行代码签名的 Mac 之外的任何 Mac 中时,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
假设您拥有 Apple 颁发的有效 Developer ID 证书,请查看 Notarizing Your App Before Distribution。
Beginning in macOS 10.14.5, all new or updated kernel extensions and all software from developers new to distributing with Developer ID must be notarized in order to run. Beginning in macOS 10.15, notarization is required by default for all software.
在部署软件之前,您现在还必须将其发送给 Apple 进行公证。如果您最近创建了开发者 ID,Gatekeeper 将不会 运行 您的代码签名软件没有附加的公证票。
Apple 在 Customizing the Notarization Workflow 的 command-line 中提供了有关如何执行此操作的详细说明(确保将 --timestamp
和 -o runtime
选项与 codesign
命令)。
如果您没有 Apple Developer 帐户(并且正在使用 self-signed 证书),您将在代码签名、公证和分发软件之前获得一个。拥有帐户后,请参阅 Maintain Signing Assets 了解如何在钥匙串上获取 Apple-issued 证书的说明。
我对一个 dmg 文件进行了代码签名,并将其上传到 google 云存储。该文件在我的 Mac 中未被视为威胁,但在其他 Mac 中 chrome 浏览器阻止下载该文件,将其视为恶意软件。在尝试将 dmg 安装到除用于对其进行代码签名的 Mac 之外的任何 Mac 中时,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
假设您拥有 Apple 颁发的有效 Developer ID 证书,请查看 Notarizing Your App Before Distribution。
Beginning in macOS 10.14.5, all new or updated kernel extensions and all software from developers new to distributing with Developer ID must be notarized in order to run. Beginning in macOS 10.15, notarization is required by default for all software.
在部署软件之前,您现在还必须将其发送给 Apple 进行公证。如果您最近创建了开发者 ID,Gatekeeper 将不会 运行 您的代码签名软件没有附加的公证票。
Apple 在 Customizing the Notarization Workflow 的 command-line 中提供了有关如何执行此操作的详细说明(确保将 --timestamp
和 -o runtime
选项与 codesign
命令)。
如果您没有 Apple Developer 帐户(并且正在使用 self-signed 证书),您将在代码签名、公证和分发软件之前获得一个。拥有帐户后,请参阅 Maintain Signing Assets 了解如何在钥匙串上获取 Apple-issued 证书的说明。