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

32

问题

当我尝试通过Fastlane发送我的应用程序时,我遇到了以下错误:

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

传输器传输失败。使用您生成的应用程序专用密码进行登录。 如果您忘记了应用程序特定密码或需要创建一个新密码,请转到 appleid.apple.com (-22938)您的帐户启用了2步验证。请前往 https://appleid.apple.com/account/manage 生成应用程序专用密码 用于上传构建。要将应用程序特定密码设置为使用CI机器的环境变量, 您可以设置FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD变量。

请提供您的Apple开发人员计划帐户凭据。您输入的登录信息将存储在macOS Keychain中 密码(针对 xxx@yyy.com 的应用程序特定密码)

6个回答

28

解决方案

正如错误信息所述,我们需要在以下地址创建一个应用程序特定密码http://appleid.apple.com。前往安全部分并使用“生成密码”功能。

生成密码

点击生成密码链接来创建新密码。复制并粘贴该密码,不要忘记在点击“完成”之后无法再次查找密码

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD

接下来,在您的bash或.bash_profile文件中设置FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD环境变量。这个文件可能因您在终端上选择的bash而有所不同。例如,如果您像我一样选择了ZSH作为您的bash,则需要编辑.zshrc文件。

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

bundle exec fastlane beta --verbose

注意: 当你无法手动输入安全码,例如在持续集成系统上时,你需要使用其他方式进行登录。如果你的操作使用情况不是上传二进制文件,如更新任何元数据(例如设置发布说明或分配给测试人员等),应用特定的密码将不起作用。

为Apple ID生成登陆会话

由于你的CI机器无法提示你输入双重身份验证信息,你需要提前为Apple ID生成一个登录会话。你可以通过在本地机器上运行以下命令来实现:

fastlane spaceauth -u user@email.com

还有什么需要注意的吗?

⚠️ 如果您拥有没有启用双重身份验证的Apple ID

没有启用双重身份验证的Apple ID已经被弃用!苹果宣布从2019年2月27日起,将在拥有“账户持有人”角色的开发者Apple ID上强制使用两步验证。此后,他们将这个规定扩展到了所有角色,并且随后在2020年逐渐强制所有现有帐户注册2FA。截至2021年3月3日,未注册2FA的帐户无法登录,必须先注册一个2FA方法,这实际上破坏了所有“不符合2FA标准的Apple ID”。因此,在使用CI中的fastlane时,您必须使用2FA。

欲了解更多信息,请查看fastlane文档

希望这能有所帮助!


当然,你也可以在环境变量中设置...我相信这是一个专门用于你的CI流程的安全服务器。祝好。 - mgyky
我有一个“应用程序专用密码”... 我需要登录... 现在去哪里? - Gerry
抱歉,我不明白你的问题,请仔细阅读。最好了。 - mgyky
@mgyky我正在使用spaceauth,但仍然出现错误提示需要设置FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD。你能帮我吗? - ankitjaiswal
如果您在使用AppleID时没有启用2FA,可能会出现相同的错误。不启用2FA的Apple ID已被弃用。请查看此页面:https://docs.fastlane.tools/getting-started/ios/authentication/ @ankitjaiswal - mgyky
显示剩余3条评论

14

我遇到了这个问题,但在.zshrc(我使用的是ZSH)中设置FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD环境变量没有生效。

相反,我在Fastfile中设置了该变量:

before_all do
  ...
  ENV['FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD']= 'xxxx-xxxx-xxxx-xxxx'
  ...
end

谢谢,我也遇到了ZSH的问题,尽量避免那些点。其他都很好。 - Vivek

8

修复此问题的简单方法如下:

问题:enter image description here 解决步骤:
step1
enter image description here step2
enter image description here step3
enter image description here
step4
enter image description here
  1. https://appleid.apple.com
  2. 创建应用专用密码
  3. 输入类似于示例的字符串
  4. 获取你的应用专用密码

完成:
enter image description here


8
这是一个错误截图,enter image description here 这里是创建应用程序专用密码的位置,enter image description here

密码标签应该是什么? - eja08
它可以是你想要的任何东西,只是密码的“标签”。 - Jonathan Sanchez
2
有没有办法防止每次都被问到这个? - humblePilgrim

1
我在使用pilot/upload_to_testflight时遇到问题,与FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD一起使用时总是在2FA步骤上出错。原来,为了让pilot使用该环境变量,必须传递两个参数apple_idskip_waiting_for_build_processing,否则将使用普通的用户名和密码进行身份验证。请注意保留HTML标签。
pilot(apple_id: ENV["YOUR_ID"],
        skip_submission: true,
        skip_waiting_for_build_processing: true)

请注意,此方法仅适用于上传操作,对于其他交互,请使用推荐的api_key方法。

1
你需要先运行这个命令。
export FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=your-app-spesific-password

然后你可以使用fastlane命令。
fastlane beta --verbose

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接