您必须对应用程序进行公证才能在 Mac App Store 之外分发应用程序。该过程会验证应用程序,确保其具有开发者 ID 代码签名并且不包含恶意内容。您可以使用 Xcode、Xcode 命令行工具或 Unity Build Automation 对应用程序进行公证。
在构建过程中,Unity 能够生成一个与自身项目对应的 Xcode 项目。您可以使用此 Xcode 项目对应用程序进行公证。按照 macOS 应用程序构建步骤从 Unity 项目创建 Xcode 项目。有关 Xcode 项目公证的信息,请参阅分发前公证 macOS 软件。
注意:通过 Mac App Store 分发应用程序不需要公证。Mac App Store 的上传过程包括类似于公证的内容验证。请参阅交付到 Mac App Store 以了解更多信息。
如果您无法在 Xcode 环境中对应用程序进行公证,或者希望手动控制公证,可以使用 Xcode 的命令行工具。
为此,您需要以下各项:
Apple 要求您在上传应用程序进行公证之前对其进行压缩。要执行此操作,请使用以下 API:
打开终端并导航到应用程序所在的目录。
"application_name.app" 是您构建的应用程序。"application_name.zip" 是要生成的压缩文件的名称。ditto -c -k
--sequesterRsrc
--keepParent "application_name.app" "application_name.zip"
这会压缩应用程序并将压缩文件输出到与该应用程序同一目录下。
为了对应用程序进行公证,Apple 需要特定格式的唯一密码。有关如何生成应用程序密码的信息,请参阅如何生成特定于应用程序的密码。生成的密码采用以下格式:xxxx-xxxx-xxxx-xxxx。
如果您使用的是 Xcode 13 或更高版本,请使用 Apple 的公证工具上传和公证应用程序。有关更多信息,请参阅自定义公证工作流程和在旧版本的 macOS 上启用公证。
注意:截至 2023 年 11 月 1 日,Apple 已弃用 altool 进行公证。您必须先更新工作流程,之后才能使用公证工具对 macOS 应用程序进行公证。有关更多信息,请参阅迁移到最新公证工具。
对应用程序进行公证后,任何运行该应用程序的设备都可以验证它是否有代码签名,以及是否不包含恶意内容。但是,设备只能在线执行此验证。要让设备在没有互联网连接的情况下验证您的应用程序,您必须给应用程序附加票证。有关附加票证的信息,请参阅将票证附加到分发内容。
给应用程序附加票证,
"ApplicationName.app" 是应用程序的名称:xcrun stapler staple "ApplicationName.app"