![](/https/developer.apple.com/developer-id/images/mbp-16-mac-dialogue-screen-large_2x.jpg)
为 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 启动时的用户体验。
对你的软件进行公证
将软件提交到 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 及更早版本的上传内容,但现有的已公证软件将继续正常运行。