我有一个 GitHub action,使用 fastlane
构建并在 CI 流水线中发布版本到 TestFlight。我使用 App Store Connect 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流水线中使用它吗?
Fastfile
可以访问 GitHub 存储库的机密信息。 - NRitH