为 app 签名以通过“门禁”验证

macOS 中的“门禁”会检查在 Mac App Store 以外地方的 app 中是否配有 Developer ID 证书,避免用户下载和安装恶意软件。在分发任何 app、插件或安装器软件包之前,请务必对它们进行签名,以便让“门禁”知道安装这些内容是安全的。现在,您可以将在 macOS Mojave 上运行的 app 提交到 Apple 进行公证,从而进一步提高用户对您 app 的信心。

为分发做好准备

当用户打开从 Mac App Store 以外地方下载的 app、插件或安装器软件包时,“门禁”能通过 Developer ID 证书,让用户确认您是受信任的开发者。使用 Developer ID 证书签名的软件还可以利用 CloudKit 和 Apple 推送通知等高级功能。

生成 Developer ID 证书。

您可以通过 Xcode 或在开发者帐户的“Certificates, Identifiers & Profiles”(证书、标识符和描述文件) 部分中生成 Developer ID 证书。请注意,您必须是 Apple Developer Program 中开发团队的帐户持有人。

了解如何创建和导出证书 (英文)

为 app 签名并进行测试。

在 Xcode 中启用强化版运行时功能,并对这个 app 所需的各种功能进行授权。归档您的 app。如要测试以 Developer ID 签名的 app 启动时的终端用户体验,请使用已启用“门禁”的 Mac 来测试。

了解如何准备分发您的 app (英文)

Xcode

要构建面向 macOS 的 app 并提交到 Apple 进行公证,请使用 Mac App Store 上提供的 Xcode 10 或更高版本。

对您的软件进行公证

将软件提交到 Apple 进行公证,从而进一步提高用户对您软件的信心。公证服务会自动扫描您使用 Developer ID 签名的软件,并进行安全检查。当可以导出进行分发时,您的软件会被附加一个凭证,以便让“门禁”知道它已经过公证。

有关上传 Mac 软件进行公证的分步详情,请阅读“在分发前对您的 App 进行公证 (英文)”和“Xcode 帮助指南 (英文)”。

通过 Xcode 提交

未发布的软件。使用“导出”流程或 xcodebuild,可以轻松对未发布的软件进行公证。xcrun altool 命令行工具支持通过定制构建工作流程进行上传,您也可以使用 xcrun stapler 将票据附加到软件包。

已发布的软件。要提交已发布的软件,请使用 xcrun altool 命令行工具上传软件。支持的文件类型有多种,包括 .zip、.pkg 和 .dmg 等,因此您可以上传已分发给用户的同样的软件包。

查看上传日志

除检查是否有恶意软件之外,公证服务还可以检查出可能妨碍软件正确安装的常见代码签名问题。如果您上传的软件包未通过公证,请检查状态日志来了解详情。

了解如何解决常见公证问题 (英文)

即将实行的要求

macOS Mojave 10.14 或更高版本上,用户首次打开经过公证的 app、安装器软件包或磁盘映像时,他们会看到一个更为简洁的“门禁”对话框,确信这个内容不是已知的恶意软件。

使用 Developer ID 进行签名的 Mac app、安装器软件包和内核扩展也必须获得 Apple 公证,才能在 macOS Catalina 上运行。