如何安全地存储 App Store Connect API 密钥以供 fastlane 使用?

3

我有一个 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流水线中使用它吗?
1个回答

5

1
这非常简单,正是我所寻找的。我没有意识到 Fastfile 可以访问 GitHub 存储库的机密信息。 - NRitH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接