使用 VSTS 中的 Fastlane 发布到 TestFlight

Publish to TestFlight using Fastlane from VSTS

我正在尝试使用 App Store VSTS 扩展将应用程序构建部署到 TestFlight,但在身份验证阶段出现问题。

这似乎与 iTunes 很难回答帐户的安全问题有关:

我不确定如何解决这个问题:

fastlane pilot upload -u ******** -i FrameworkDemoApp.Touch.ipa -q 466996 -r **** -a *****
--skip_submission true --skip_waiting_for_build_processing true

Login to iTunes Connect (********)

Service key is empty

/Users/vsts/.gem-cache/gems/fastlane-2.93.1/spaceship/lib/spaceship/two_step_client.rb:45:
in handle_two_step:` 
[!] Invalid 2 step response {"securityQuestions"=>{"questions"=>[{"id"=>134, "question"=>
"Where did you go the first time you flew on a plane?", "number"=>1, "userDefined"=>false},
{"id"=>136, "question"=>"What is your dream job?", "number"=>2, "userDefined"=>false}]},
"crResetEnabled"=>false,
"resetSecurityQuestionsSupportLink"=>"http://support.apple.com/kb/HT6170"}

这个问题似乎是因为我使用的 Apple ID 没有启用两步验证。

VSTS 文档中没有明确说明:https://docs.fastlane.tools/best-practices/continuous-integration/#use-of-application-specific-passwords-and-spaceauth

如果您在此构建和发布过程中使用个人帐户并启用了 2FA,您可能会 运行 遇到问题。

Microsoft's documentation on the App Store VSTS extension 的 "official" 建议是不启用 2FA,但为了避免要求 2FA,用于发布的 Apple ID 不能是 "Account Holder" 类型。

请参阅 Fastlane 文档上的 https://docs.fastlane.tools/best-practices/continuous-integration/#separate-apple-id-for-ci,它不仅适用于 VSTS,这可能就是它很难找到的原因(我自己偶然发现了它)。