设置2FA for beta上传到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通道之前运行下面的preauth命令
- run:
name: Spaceship pre-auth for 2FA
command: bundle exec fastlane spaceauth -u [redacted].com
即使密码正确,Fastlane似乎也失败了auth
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,只有应用程序专用密码应该足够,尽管这也不起作用。
有没有人解决过这个可以提出建议的问题?
那里的文档错了 - 这是我的错。我在实际代码之前更新了文档文章,使其合并。
您当前最好的方法是创建第二个帐户,该帐户没有启用2FA,或者在本地使用spaceauth
,然后将返回的值复制到CI提供程序上的ENV变量中,尽管它可能只能工作24小时。我们目前正在调查如何改进这一点。
使用CI服务器的REST API更新FASTLANE_SESSION配置参数的值。在我们的例子中,我们将它定义在一个地方,并且它可以被需要授权到Dev Center / App Store Connect的所有作业重用。我没有查看详细信息,但我确信有一种方法可以通过REST调用更新作业/项目参数。然后,再次运行一个运行spaceauth的计划作业,并使用REST API设置新值。