您必须对应用程序进行公证,才能在 Mac App Store 之外进行发布。此过程会验证您的应用程序,确保它具有开发者 ID 代码签名并且不包含恶意内容。您可以使用 Xcode、Xcode 命令行工具或 Unity 构建自动化Unity 项目的持续集成服务,可自动在 Unity 服务器上创建构建。 更多信息
参见 词汇表 对应用程序进行公证。
Unity 可以在构建过程中创建代表您的 Unity 项目的 Xcode 项目。您可以使用此 Xcode 项目对应用程序进行公证。请按照 macOS 应用程序构建步骤 从 Unity 项目创建 Xcode 项目。有关公证 Xcode 项目的信息,请参阅 在发布之前对 macOS 软件进行公证。
注意:通过 Mac App Store 发布应用程序不需要进行公证。Mac App Store 的上传过程包含与公证类似的内容验证。有关更多信息,请参阅 交付到 Mac App Store。
如果您无法在 Xcode 环境中对应用程序进行公证,或者希望手动控制公证,则可以使用 Xcode 的命令行工具。
为此,您需要以下内容
Apple 要求您在上传应用程序以进行公证之前对其进行压缩。为此,请执行以下步骤
打开终端并导航到应用程序所在的目录。
"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 的 notarytool 上传并公证您的应用程序。有关更多信息,请参阅 自定义公证工作流程 和 在旧版 macOS 上启用公证。
注意:截至 2023 年 11 月 1 日,Apple 已弃用使用 altool 进行公证。您必须更新工作流程以使用 notarytool 对 macOS 应用程序进行公证。有关更多信息,请参阅 迁移到最新的公证工具。
对应用程序进行公证后,任何运行该应用程序的设备都可以验证它是否具有代码签名且不包含恶意内容。但是,设备只能在线执行此验证。为了让设备在没有互联网连接的情况下验证您的应用程序,您必须将应用程序钉住。有关钉住的信息,请参阅 将票据钉住到您的分发。
要将应用程序钉住,请执行以下操作
"ApplicationName.app"
是应用程序的名称xcrun stapler staple "ApplicationName.app"