为 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 或在开发者账户的“证书、标识符和描述文件”部分中生成 Developer ID 证书。请注意,你必须是 Apple Developer Program 中开发团队的账户持有人,才能生成此证书。

了解如何创建和导出证书

为 App 签名并进行测试

在 Xcode 中,你可以启用强化版运行时功能,并对这个 App 所需的各种功能进行授权。然后归档你的 App 并使用 Mac 来测试以 Developer ID 签名的 App 启动时的用户体验。

了解如何准备分发你的 App

Xcode

请使用 Mac App Store 上提供的最新版 Xcode 来构建面向 macOS 的 App 并提交到 Apple 进行公证。

对你的软件进行公证

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

有关上传 Mac 软件进行公证的分步详情,请查看《在分发前对 macOS 软件进行公证》《Xcode 文档》

通过 Xcode 提交

未发布的软件。使用导出流程或 xcodebuild,可以轻松对未发布的软件进行公证。xcrun notarytool 命令行工具支持通过定制构建工作流程进行上传,你也可以使用 xcrun stapler 将凭证分配给软件包。

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

查看上传日志

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

了解如何解决常见公证问题

要求

如果你使用 altool 命令行工具或 Xcode 13 或更早版本通过 Apple 公证服务公证 Mac 软件,则需要转换到 notarytool 命令行工具或升级到 Xcode 14 或更高版本。自 2023 年 11 月 1 日起,Apple 公证服务将不再接受使用 altool 或 Xcode 13 及更早版本的上传内容,但现有的已公证软件将继续正常运行。