如何导出notarytool使用的公证配置文件以用于CI/CD流程?
导出NotaryTool密钥链配置文件用于CI/CD
1. 本地导出加密的配置文件
在你已存储过Notary Profile for DeepSkyStacker配置的本地机器上,运行以下命令将配置导出为加密JSON文件:
xcrun notarytool export-credentials "Notary Profile for DeepSkyStacker" --output notary-credentials.json
- 执行命令时会要求你设置一个加密密码,请妥善记录这个密码,后续CI/CD环境需要用它解密配置文件。
- 导出的JSON文件是加密状态,不会明文暴露Apple ID、API密钥等敏感信息。
2. 在CI/CD环境中部署配置
- 将导出的
notary-credentials.json文件上传到CI/CD平台的保密存储(如GitHub Secrets、GitLab CI/CD变量、Jenkins凭据库等),避免文件内容公开。 - 将导出时设置的加密密码也作为保密变量存储到CI/CD环境中(例如命名为
NOTARY_CRED_PASSWORD)。
3. 修改CI/CD脚本适配导出的配置
更新你的公证脚本,使用导出的配置文件和保密密码:
#!/bin/sh ditto -c -k --keepParent "$1.app" "$1.zip" # 使用导出的加密配置文件和CI/CD保密密码 xcrun notarytool submit "$1.zip" --keychain-profile "Notary Profile for DeepSkyStacker" --credentials notary-credentials.json --password "$NOTARY_CRED_PASSWORD" --wait xcrun stapler staple "$1.app" rm -f "$1.zip"
- 脚本中的
$NOTARY_CRED_PASSWORD对应你在CI/CD环境中存储的加密密码变量。
关键注意事项
- 加密的JSON文件和密码必须分开存储,禁止硬编码到脚本或版本控制系统中。
- 同一配置文件可在多台CI/CD机器上复用,只需确保每台机器能获取到加密密码和JSON文件。
内容的提问来源于stack exchange,提问作者David Partridge
相关产品推荐
相关产品推荐

