使用 VSTS 的 Fastlane 发布到 TestFlight

Posted

技术标签:

【中文标题】使用 VSTS 的 Fastlane 发布到 TestFlight【英文标题】:Publish to TestFlight using Fastlane from VSTS 【发布时间】:2018-05-01 07:23:48 【问题描述】:

我正在尝试使用 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"

【问题讨论】:

如果在本地机器上通过命令手动部署应用,结果如何?可以分享一下 OneDrive 上的详细日志吗? (添加system.debug变量并设置为true,然后开始发布,移除敏感信息) 【参考方案1】:

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

Microsoft's documentation on the App Store VSTS extension 的“官方”建议是不要启用 2FA,但为了避免需要 2FA,用于发布的 Apple ID 不能是“帐户持有人”类型。

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

老实说...VSTS/Azure DevOps 文档中没有明确说明

以上是关于使用 VSTS 的 Fastlane 发布到 TestFlight的主要内容,如果未能解决你的问题,请参考以下文章

VSTS Task Apple App Store 要求提供 2FA 代码,但设置了 Fastlane Session 和 App-Specific

为 Xamarin iOS 应用程序自动发布 CI [关闭]

使用 fastlane 上传到 S3

使用 Fastlane 自动构建、部署到曲棍球

交付到 App Store 时,Fastlane 框架不支持的屏幕尺寸

如何使用 fastlane 将 .ipa 文件分发到 TestFlight