使用您生成的应用专用密码登录。如果您忘记了应用专用密码或需要创建一个新密码 -22938

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

解决方案

正如错误消息所说,我们需要在以下位置创建一个特定应用程序的密码

http://appleid.apple.com

地址。转到安全部分并使用生成密码。

生成密码

使用生成密码链接创建新密码。复制并粘贴密码,不要忘记单击“完成”按钮后将无法再次找到密码

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD

然后,在 bash 或 .bash_profile 文件中设置FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD环境变量。此文件可能会有所不同,具体取决于您对终端上 bash 的选择。例如,如果您选择的 bash 和我的一样是 ZSH,则您需要编辑 .zshrc 文件。

然后使用以下命令重新运行您的 Fastlane:

bundle exec fastlane beta --verbose
Run Code Online (Sandbox Code Playgroud)

注意:当您无法手动输入安全代码时,如在持续集成系统上,您必须使用其他方式登录。如果您的操作使用除了上传二进制文件之外还有其他任何用途,那么应用程序特定的密码将不起作用,例如更新任何元数据,例如设置发行说明或分发给测试人员等。

为 Apple ID 生成登录会话

由于您的 CI 机器将无法提示您输入两步验证或两步验证信息,因此您需要提前生成 Apple ID 登录会话。您可以通过运行以下命令来获取本地计算机:

fastlane spaceauth -u user@email.com
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看fastlane 文档

希望这可以帮助!


Jon*_*hez 8

这是错误的屏幕截图 在此输入图像描述

这是创建的地方app-specific password 在此输入图像描述

  • 有没有办法避免每次都被问到这个问题? (2认同)

Wil*_*eng 8

解决此问题的简单方法
问题: 在此输入图像描述 答案:
步骤1
在此输入图像描述 第2步
在此输入图像描述 步骤3
在此输入图像描述
步骤4
在此输入图像描述

  1. https://appleid.apple.com
  2. 创建应用程序专用密码
  3. 输入一个字符串,如示例所示
  4. 已获取您的应用程序专用密码

完毕:
在此输入图像描述