我有一个GitHub操作,运行fastlane来构建并部署CI管道中的TestFlight版本。我使用App连接API密钥进行非交互身份验证。
苹果的文档明确表示:
重要 保持API密钥的安全和私有。您不应该共享您的密钥,将密钥存储在代码存储库中,或者在客户端代码中包含密钥。
但是,我看到的每个示例都只是将.p8文件传递给app_store_connect_api_key()命令,或者作为纯文本文件签入源代码管理(通过key_filepath参数):
lane :release do
app_store_connect_api_key(
key_id: "D383SF739",
issuer_id: "6053b7fe-68a8-4acb-89be-165aa6465141",
key_filepath: "./AuthKey_D383SF739.p8"
)
pilot
end或者作为明文密钥本身(通过key参数):
lane :release do
app_store_connect_api_key(
key_id: "D383SF739",
issuer_id: "6053b7fe-68a8-4acb-89be-165aa6465141",
"key": "-----BEGIN PRIVATE KEY-----\nMIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHknlhdlYdLu\n-----END PRIVATE KEY-----"
)
pilot
end是否有更安全的方法来存储它,并且仍然在CI管道中使用它?
发布于 2022-04-23 18:47:35
您可以将要保持私有的值存储为环境变量。据我所知,所有CI/CD服务都允许设置环境变量。您可以使用ENV['XYZ']访问Fastfile中的任何环境变量。
请参阅更多信息:https://docs.fastlane.tools/best-practices/continuous-integration/github/
https://stackoverflow.com/questions/71588490
复制相似问题