mgy*_*yky 18 continuous-integration ios fastlane app-store-connect
当我尝试通过 Fastlane 发送我的应用程序时,我遇到了以下错误:
使用您生成的应用专用密码登录。如果您忘记了应用专用密码或需要创建一个新密码,请访问 appleid.apple.com (-22938)
Transporter 传输失败。使用您生成的应用专用密码登录。如果您忘记了应用专用密码或需要创建一个新密码,请访问 appleid.apple.com (-22938) 您的帐户已启用两步验证。请前往 https://appleid.apple.com/account/manage并为 iTunes Transporter 生成一个应用程序特定密码,用于上传构建。要使用环境变量在 CI 机器上设置应用程序特定密码,您可以设置 FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD 变量。
请提供您的 Apple Developer Program 帐户凭据您输入的登录信息将存储在您的 macOS 钥匙串密码中(xxx@yyy.com 的特定应用程序)
小智 14
我遇到了这个问题,但在 .zshrc (我使用的是 ZSH)中设置FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD环境变量不起作用。
相反,我在Fastfile中设置了该 var :
before_all do
...
ENV['FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD']= 'xxxx-xxxx-xxxx-xxxx'
...
end
Run Code Online (Sandbox Code Playgroud)
mgy*_*yky 13
正如错误消息所说,我们需要在以下位置创建一个特定于应用程序的密码:
地址。转到安全部分并使用生成密码。
使用生成密码链接创建新密码。复制并粘贴密码,不要忘记单击“完成”按钮后将无法再次找到密码。
然后,在 bash 或 .bash_profile 文件中设置FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD环境变量。此文件可能会有所不同,具体取决于您对终端上 bash 的选择。例如,如果您选择的 bash 和我的一样是 ZSH,则您需要编辑 .zshrc 文件。
然后使用以下命令重新运行您的 Fastlane:
bundle exec fastlane beta --verbose
Run Code Online (Sandbox Code Playgroud)
注意:当您无法手动输入安全代码时,如在持续集成系统上,您必须使用其他方式登录。如果您的操作使用除了上传二进制文件之外还有其他任何用途,那么应用程序特定的密码将不起作用,例如更新任何元数据,例如设置发行说明或分发给测试人员等。
由于您的 CI 机器将无法提示您输入两步验证或两步验证信息,因此您需要提前生成 Apple ID 登录会话。您可以通过运行以下命令来获取本地计算机:
fastlane spaceauth -u user@email.com
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看fastlane 文档。
希望这可以帮助!