设置 2FA 以将测试版上传到 iTunesConnect/TestFlight 的正确方法是什么?
有很多链接和论坛答案,但都不能解决问题。
目前我已将环境变量添加到 CircleCI 中,包括在 AppleID 上生成的应用程序特定密码。
我在 FaSTLane 中有一条车道,看起来像这样
desc "Alpha build"
lane :alpha do
match(type: "adhoc")
gym(export_method: "ad-hoc")
upload_to_testflight(skip_submission: true)
end
我在 alpha channel 之前运行下面的预验证命令
- run:
name: Spaceship pre-auth for 2FA
command: bundle exec fastlane spaceauth -u [redacted].com
即使密码正确,FaSTLane 似乎也无法进行身份验证
Please check your credentials and try again.
This could be an issue with App Store Connect,
Please try unsetting the FASTLANE_SESSION environment variable
如果我删除 spaceauth 命令,circleci 将因等待 2FA 超时而失败。
FaSTLane 网站表示,除非使用其他应用程序商店连接 API(例如上传元数据等),否则无需使用 spaceauth。它指出,对于上传到 testflight,仅应用程序特定密码就足够了,尽管这不起作用要么。
有谁解决了这个问题可以提供建议吗?
最佳答案
您可以通过 API key 向 Apple 进行身份验证。您可以在此处生成 key :https://appstoreconnect.apple.com/access/api .
获得 key.p8 文件后,您可以使用 faSTLane 命令进行身份验证:app_store_connect_api_key
,如下所示:
app_store_connect_api_key(
key_id: "ABCDEFG",
issuer_id: "Your_issuer_id",
key_content: File.read("./key.p8").chomp,
duration: 1200,
in_house: false
)
执行命令后, key session 存储在以下环境变量中:APP_STORE_CONNECT_API_KEY
,因此您上传到 testflight 的内容应如下所示:
upload_to_testflight(
groups: ["Friends & Family","Mytest-Group"],
ipa: "./build/myapp.ipa",
api_key: Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
)
关于ios - 使用 FaSTLane/CircleCI 自动化 2FA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55537956/