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

问题描述 投票:0回答:6

问题

当我尝试通过 Fastlane 发送我的申请时,我遇到以下错误:

使用您生成的应用程序专用密码登录。如果你忘记了 应用程序专用密码或需要创建新密码,请转至 appleid.apple.com (-22938)

Transporter 传输失败。使用您的应用专用密码登录 生成的。如果您忘记了应用程序专用密码或需要创建一个 新的,请访问 appleid.apple.com (-22938)您的帐户有 2 个步骤 验证已启用。请前往 https://appleid.apple.com/account/manage并生成应用程序 iTunes Transporter 的特定密码,用于上传 构建。使用以下命令在 CI 计算机上设置应用程序特定密码 环境变量,您可以设置 FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD 变量。

请提供您的Apple开发者计划帐户凭据您输入的登录信息将存储在您的macOS钥匙串中 密码([email protected] 的应用程序特定)

ios continuous-integration app-store-connect fastlane
6个回答
28
投票

解决方案

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

http://appleid.apple.com

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

生成密码

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

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD

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

然后重新运行您的快速通道:

bundle exec fastlane beta --verbose

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

为 Apple ID 生成登录会话

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

fastlane spaceauth -u [email protected]

还有什么?

⚠️如果您有没有 2FA 的 Apple ID

不支持 2FA 的 Apple ID 已被弃用! Apple 宣布,自 2019 年 2 月 27 日起,将对具有“帐户持有者”角色的开发者 Apple ID 强制执行两因素身份验证。从那时起,他们将此规则扩展到所有角色,然后在 2020 年晚些时候,他们慢慢强制所有现有帐户注册 2FA。截至 2021 年 3 月 3 日,未注册 2FA 的帐户在注册 2FA 方法之前都无法登录,这基本上打破了所有仍然存在的“不符合 2FA 的 Apple ID”。因此,在 CI 中使用 fastlane 时,您必须使用 2FA。

了解更多,请查看 fastlane 文档 .

希望这有帮助!


13
投票

我遇到了这个问题,但在 .zshrc 处设置 FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD 环境变量(我正在使用 ZSH)不起作用。

相反,我在 Fastfile:

中设置了该 var
before_all do
  ...
  ENV['FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD']= 'xxxx-xxxx-xxxx-xxxx'
  ...
end

8
投票

这是错误的屏幕截图

这是创建

app-specific password
的地方


8
投票

解决此问题的简单方法
问题: 答案:
步骤1
步骤2
步骤3

步骤4

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

完成:


1
投票

我在尝试与

pilot/upload_to_testflight
一起使用
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
时遇到问题。它总是在 2FA 步骤上给我带来错误。事实证明,为了让
pilot
使用该环境变量,必须传递 2 个参数
apple_id
skip_waiting_for_build_processing
,否则将使用正常的用户名和密码身份验证。

pilot(apple_id: ENV["YOUR_ID"],
        skip_submission: true,
        skip_waiting_for_build_processing: true)

请注意,这仅适用于上传,对于任何其他交互,建议的方法是使用 api_key。


0
投票

您需要先运行此命令

export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=your-app-spesific-password

然后就可以使用fastlane命令了。

fastlane beta --verbose
© www.soinside.com 2019 - 2024. All rights reserved.