使用 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 [关闭]