文档

支持

为 macOS 应用程序签名

Follow this workflow to sign and notarize your macOS application during the build process.
阅读时间6 分钟最后更新于 19 天前

Unity Build Automation 可以在构建过程中对 macOS 应用程序进行公证和封装。这可确保应用程序符合 macOS 公证要求 注意:通过 Mac App Store 分发应用程序时不需要公证。Mac App Store 的上传过程包括与公证类似的内容验证。有关更多信息,请参阅交付到 Mac App Store

从 Apple 设备创建开发者 ID 证书

如果在 Apple 设备上进行开发,可以设置 Unity Build Automation 来对应用程序进行公证和封装。 要满足相关要求,请按照以下步骤操作:
  1. 创建开发者 ID 证书并将其添加到钥匙串中。有关如何执行此操作的信息,请参阅签名身份
  2. 从钥匙串将开发者 ID 证书导出为个人信息交换 (
    .p12
    ) 格式的文件。有关如何执行此操作的信息,请参阅在 Mac 上使用 Keychain Access 导入和导出钥匙串项目
  3. 通过 Apple 开发者帐户获取您的提供商简称。
完成这些步骤后,请参阅使用 Unity Build Automation 进行公证

从 Windows 或 Linux 设备创建开发者 ID 证书

如果在 Windows 或 Linux 上进行开发,可以设置 Unity Build Automation 来对应用程序进行公证和封装。要满足相关要求,请按照以下步骤操作:
  1. 创建并下载开发者 ID 证书。有关如何执行此操作的信息,请参阅签名身份
  2. 将开发者 ID 证书转换为 PKCS #12 个人信息交换 (.p12) 文件格式。有关如何执行此操作的信息,请参阅将开发者 ID 证书转换为 Windows 和 Linux 上的 .p12 文件
  3. 通过 Apple 开发者帐户获取您的提供商简称。
完成这些步骤后,请参阅使用 Unity Build Automation 进行公证

在 Windows 和 Linux 上将开发者 ID 证书转换为 .p12 文件

.p12
文件捆绑了开发者 ID 证书和私钥。要从开发者 ID 证书创建该文件,请执行以下操作:
  1. 打开命令行界面,然后转到包含开发者 ID 证书文件的目录。如果您尚未下载开发者 ID 证书,请参阅签名身份
  2. 开发者 ID 证书使用
    .cer
    文件格式。将此文件转换为
    .pem
    文件格式。为此,请运行以下命令:
    • developer_identity.cer
      是要转换的开发者 ID 证书文件。
    • developer_identity.pem
      是要输出的文件名和文件类型。
    openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM
  3. 生成新的私钥。为此,请运行以下命令:
    • mykey.key
      是要输出的私钥文件名。
    openssl genrsa -out mykey.key 2048
  4. 生成
    .p12
    文件。为此,请运行以下命令:
    • mykey.key
      是您在步骤 3 中生成的私钥文件。
    • developer_identity.pem
      是您在步骤 2 中生成的
      .pem
      文件。
    openssl pkcs12 -export -inkey mykey.key -in developer_identity.pem -out iphone_dev.p12

生成应用程序密码

要对应用程序进行公证,Apple 需要 Apple ID 和特定格式的应用程序专用唯一密码。 有关如何生成应用程序密码的信息,请参阅如何生成应用程序专用密码 (Apple)。生成的密码使用以下格式:
xxxx-xxxx-xxxx-xxxx

使用 Unity Build Automation 进行公证

要在 Unity Build Automation 中对 macOS 应用程序进行公证,请按照以下步骤操作:
  1. Unity Dashboard 中,打开 DevOps
  2. 选择 Build Automation > Configurations(配置)
  3. 单击 Target setup(目标设置) 按钮。
  4. 选择 Mac desktop Universal(Mac 桌面通用) 构建目标。
  5. 在 Credentials(凭据)部分中,选择 Xcode 版本。
  6. 启用 Enable OSX notarization in Unity Build Automation(在 Unity Build Automation 中启用 OSX 公证)
  7. 添加 Bundle ID。这是对应用程序进行代码签名时使用的应用程序标识符
  8. 选择 Add new provisioning credentials (for release)(添加新的资源调配凭据(用于发布))
    注意:如果您以前针对同一组织向 Unity Build Automation 提供了一组公证凭据,则可以从下拉列表中选择这些凭据。
  9. 输入以下详细信息:

属性

描述

Name(名称)输入凭据的名称。您可以将这些凭据用于在同一组织中设置的任何其他项目。
p12 File(p12 文件)上传在之前特定平台步骤中创建的
.p12
文件。
p12 Password(p12 密码)输入创建
.p12
文件时选择的密码。
Entitlements File(授权文件)(可选)上传授权文件。如果未上传授权文件,Unity Build Automation 会使用 macOS 应用程序具有硬化运行时所需的最低授权。有关这些最低授权的信息,请参阅授权
Provider Short Name(提供商简称)输入在之前特定平台步骤中获得的提供商简称。如果您的 Apple ID 与多个组织关联,但未添加此名称,公证将失败。
注意:在 Unity Build Automation 中进行公证时,建议始终使用提供商简称。
Apple ID Username(Apple ID 用户名)输入您的 Apple ID 用户名。
Apple ID Password(Apple ID 密码)输入特定于应用程序的 Apple ID 密码。Unity Build Automation 在尝试对构建进行公证之前不会验证 Apple 凭据。
Confirm your Apple ID Password(确认 Apple ID 密码)输入您的 Apple ID 密码。
  1. 保存配置。
  2. 确保其余的构建目标配置选项已完成。
  3. 针对 Mac 桌面通用构建目标开始构建。
构建完成后,Unity Build Automation 会尝试对结果进行公证和封装。Unity Build Automation 使用以下标志运行
codesign
命令:
--deep --force --verify --verbose --timestamp --options runtime
。您无法为项目指定自定义标志。
在 Unity Build Automation 对您的项目进行构建、公证和封装后,您可以下载包含构建的压缩文件。

环境变量

以下环境变量可在构建配置中使用。要使用它们,请转到 Advanced Settings(高级设置)> Environment Variables(环境变量) 并添加新变量。

属性

描述

FASTLANE_NOTARIZE_VERBOSETrue
FASTLANE_NOTARIZE_VERBOSE
设置为
True
可在对应用程序进行公证时包含额外的日志输出。
FL_NOTARIZE_USE_NOTARYTOOLFalse
FL_NOTARIZE_USE_NOTARYTOOL
设置为
False
可使用 altool 而不是 notarytool 进行公证。默认情况下,Unity Build Automation 使用 notarytool 进行公证。