68

您好,我们在使用 fastlane sigh/get_provisioning_profile 时遇到此错误。我不认为这是一个快车道问题,因为它发生在case1 case2之前,并且通过接受协议或其他未知原因得到了解决。

需要承认 Apple 的 Apple ID 和隐私声明。请手动登录https://appleid.apple.com(或https://appstoreconnect.apple.com)以确认该声明。

我们去了

但那里没有什么可以批准的。

有任何想法吗?

4

7 回答 7

35

概括:

情况1:

* 你不想启用 2FA

  1. 使用fastlane 2.173.0更新 Gemfile并运行bundle install, bundle update fastlane, 或bundle update
  2. SPACESHIP_SKIP_2FA_UPGRADE=1在您的 CI 中使用

案例二:

* 您已启用 2FA

* 您只需要非企业账户

  1. 使用Account Holder 角色APP_STORE_CONNECT_API_KEYappstore 连接生成。

在此处输入图像描述

看起来像

-----BEGIN PRIVATE KEY-----\nabcdef12345abcdef12345\n-----END PRIVATE KEY-----
  1. 将其作为 APP_STORE_CONNECT_API_KEY 环境变量添加到您的 CI
lane :get_app_store_connect_api_key do
  ensure_env_vars(
    env_vars: [
      'APP_STORE_CONNECT_API_KEY'
    ]
  ) 
  app_store_connect_api_key(
    key_id: "12345ABCDEF",
    issuer_id: "1234abcd-12ab-12ab-12ab-123456abcdef",
    key_content: "#{ENV["APP_STORE_CONNECT_API_KEY"]}".gsub('\n', '\\n'),
    in_house: false,
  )
end
  1. 把它传到你的车道
get_provisioning_profile(api_key: get_app_store_connect_api_key)

sigh(api_key: get_app_store_connect_api_key)

pilot(api_key: get_app_store_connect_api_key)

案例3:

* 您已启用 2FA

*您需要企业帐户并获取配置文件

fastlane spaceauth -u user@email.com
  1. 将输出用作FASTLANE_SESSIONCI 上的环境变量。

  2. 你仍然需要包括FASTLANE_PASSWORD

请注意,这只持续8 小时

案例4:

* 您已启用 2FA

* 您需要企业账号或非企业账号

* 您需要上传到应用商店

  1. 从https://appleid.apple.com/account/manage创建 FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD

  2. 在您的 ci 中将其设置为环境变量

案例5:

* 您已启用 2FA

* 您需要从 appstore connect 下载 dsyms

fastlane spaceauth -u user@email.com
  1. 将输出用作FASTLANE_SESSIONCI 上的环境变量。

  2. 你仍然需要包括FASTLANE_USERFASTLANE_PASSWORD

请注意,这只持续8 小时

于 2021-02-04T09:30:49.730 回答
22

我在使用Bitrise(另一个 CI/CD 工具)时遇到了同样的问题。该错误消息具有误导性,因为它与接受某些新策略无关,而是与App Store Connect API使用的新身份验证系统有关。

为了解决这个问题,我登录了 Bitrise,我不得不切换到新的身份验证方法,如下图所示。

在此处输入图像描述

旧的身份验证方法基于单个 Apple 开发者用户的凭据,而新方法则基于 API 密钥的生成。正如您从下面的屏幕截图中看到的,我必须在User and Access -> Keys下创建一个 API密钥,然后将其上传到 Bitrise。

在此处输入图像描述

我希望我的案例可以帮助其他人解决这个问题。我很确定即使您使用不同的工具,您也必须遵循或多或少相同的程序。

于 2021-02-03T15:20:43.867 回答
10

我正在使用 Apple 帐户来验证和授权 fastlane 操作。

将我的 CI 更改为使用Apple API 密钥似乎可以解决问题。

法斯丹应该使用app_store_connect_api_key

这里的文档: http ://docs.fastlane.tools/actions/app_store_connect_api_key/#app_store_connect_api_key

于 2021-02-03T14:42:49.717 回答
9

您检查过您的 2FA 设置吗?

苹果宣布:“从 2021 年 2 月开始,所有用户都需要额外的身份验证才能登录 App Store Connect。”

于 2021-02-03T10:48:15.037 回答
4

SPACESHIP_SKIP_2FA_UPGRADE=1对于 Azure DevOps 用户,在我们等待 AppStoreConnect Api 密钥支持合并时临时工作:

https://github.com/microsoft/app-store-vsts-extension/pull/189

飞船跳过2FA升级


编辑


拉取请求已被合并,API 身份验证现在可以工作,并且是首选的身份验证方式。

AppStoreConnect API 身份验证

于 2021-02-05T14:00:03.850 回答
3

对于那些使用Pilot的人来说,有一个简单的解决方案:

只需将其添加到 Pilot:

skip_waiting_for_build_processing: true,
apple_id: "123456789"

您可以在 AppStoreConnect 的 General > App information 中找到 apple_id

参考: https ://dev.to/dumazy/upload-to-testflight-with-fastlane-and-2fa-11k8

于 2021-02-03T16:28:10.520 回答
0

In my case the following solution worked for uploading the ipa files

lane :upload_ipa do |options|
  api_key = app_store_connect_api_key(
    key_id: "xxxxx",
    issuer_id: "xxxxxx",
    key_filepath: "./fastlane/AuthKey_xxxxx.p8", #Mention the relative path
    duration: 1200, # optional
    in_house: false, # optional but may be required if using match/sigh
  )
  # The ipa and team_id are sent as options parameters to the method
  pilot(api_key: api_key, 
    ipa: options[:ipa],
    team_id: options[:team_id],
        skip_waiting_for_build_processing: true,
    wait_processing_interval: 120,
         app_platform: options[:app_platform])
end
于 2021-02-04T21:13:13.813 回答