为 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 来对应用程序进行公证和封装。 要满足相关要求,请按照以下步骤操作:- 创建开发者 ID 证书并将其添加到钥匙串中。有关如何执行此操作的信息,请参阅签名身份。
- 从钥匙串将开发者 ID 证书导出为个人信息交换 () 格式的文件。有关如何执行此操作的信息,请参阅在 Mac 上使用 Keychain Access 导入和导出钥匙串项目。
.p12 - 通过 Apple 开发者帐户获取您的提供商简称。
- 转到 Membership Details(会员详细信息)并找到您的团队 ID。您可以使用团队 ID 作为提供商简称。
从 Windows 或 Linux 设备创建开发者 ID 证书
如果在 Windows 或 Linux 上进行开发,可以设置 Unity Build Automation 来对应用程序进行公证和封装。要满足相关要求,请按照以下步骤操作:- 创建并下载开发者 ID 证书。有关如何执行此操作的信息,请参阅签名身份。
- 将开发者 ID 证书转换为 PKCS #12 个人信息交换 (.p12) 文件格式。有关如何执行此操作的信息,请参阅将开发者 ID 证书转换为 Windows 和 Linux 上的 .p12 文件。
- 通过 Apple 开发者帐户获取您的提供商简称。
- 转到 Membership Details(会员详细信息)并找到您的团队 ID。您可以使用团队 ID 作为提供商简称。
在 Windows 和 Linux 上将开发者 ID 证书转换为 .p12 文件
.p12- 打开命令行界面,然后转到包含开发者 ID 证书文件的目录。如果您尚未下载开发者 ID 证书,请参阅签名身份。
-
开发者 ID 证书使用 文件格式。将此文件转换为
.cer文件格式。为此,请运行以下命令:.pem- 是要转换的开发者 ID 证书文件。
developer_identity.cer - 是要输出的文件名和文件类型。
developer_identity.pem
openssl x509 -in developer_identity.cer -inform DER -out developer_identity.pem -outform PEM -
生成新的私钥。为此,请运行以下命令:
- 是要输出的私钥文件名。
mykey.key
openssl genrsa -out mykey.key 2048 -
生成 文件。为此,请运行以下命令:
.p12- 是您在步骤 3 中生成的私钥文件。
mykey.key - 是您在步骤 2 中生成的
developer_identity.pem文件。.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 应用程序进行公证,请按照以下步骤操作:- 从 Unity Dashboard 中,打开 DevOps。
- 选择 Build Automation > Configurations(配置)。
- 单击 Target setup(目标设置) 按钮。
- 选择 Mac desktop Universal(Mac 桌面通用) 构建目标。
- 在 Credentials(凭据)部分中,选择 Xcode 版本。
- 启用 Enable OSX notarization in Unity Build Automation(在 Unity Build Automation 中启用 OSX 公证)。
- 添加 Bundle ID。这是对应用程序进行代码签名时使用的应用程序标识符。
- 选择 Add new provisioning credentials (for release)(添加新的资源调配凭据(用于发布))。
注意:如果您以前针对同一组织向 Unity Build Automation 提供了一组公证凭据,则可以从下拉列表中选择这些凭据。 - 输入以下详细信息:
属性 | 描述 |
|---|---|
| Name(名称) | 输入凭据的名称。您可以将这些凭据用于在同一组织中设置的任何其他项目。 |
| p12 File(p12 文件) | 上传在之前特定平台步骤中创建的 |
| p12 Password(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 密码。 |
- 保存配置。
- 确保其余的构建目标配置选项已完成。
- 针对 Mac 桌面通用构建目标开始构建。
codesign--deep --force --verify --verbose --timestamp --options runtime环境变量
以下环境变量可在构建配置中使用。要使用它们,请转到 Advanced Settings(高级设置)> Environment Variables(环境变量) 并添加新变量。属性 | 值 | 描述 |
|---|---|---|
| FASTLANE_NOTARIZE_VERBOSE | True | 将 |
| FL_NOTARIZE_USE_NOTARYTOOL | False | 将 |