出现错误:“需要确认苹果的Apple ID和隐私声明。”

69

Hi,当我们使用fastlane sigh/get_provisioning_profile时,出现了以下错误。我不认为这是fastlane问题,因为在case1case2之前已经发生过并通过接受协议或其他未知原因得到了解决。

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

我们已经去了以下网址:

但没有找到任何需要批准的内容。

有什么想法吗?


4
面对相同的问题,在App Store Connect上没有任何可接受的内容。 - Aks
1
我也是...同样的问题,没有办法接受。也许我们需要设置双重身份验证。 - Gianluca
2
我们遇到了同样的问题,似乎我们需要签署一个新的协议来发布付费应用(即使我们的应用是免费的)。 - emeraldsanto
3
仅供参考,同一问题在fastlane的github页面上进行了讨论。 - JastinBall
7个回答

35

概述:

情况一:

* 您不想启用2FA

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

情况二:

* 您已启用2FA

* 您只需要非企业账号

  1. 使用App Store Connect生成APP_STORE_CONNECT_API_KEY,并使用账户持有人角色

enter image description here

看起来像是:

-----BEGIN PRIVATE KEY-----\nabcdef12345abcdef12345\n-----END PRIVATE KEY-----

将其添加到你的 CI 中作为 APP_STORE_CONNECT_API_KEY 环境变量。
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

将其传递到您的车道。
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)

第三种情况:

* 您已启用两步验证

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

  1. 运行
fastlane spaceauth -u user@email.com
  1. 将输出作为CI上的FASTLANE_SESSION环境变量使用。

  2. 您仍然需要包括FASTLANE_PASSWORD

请注意,此操作只持续8小时

方案4:

* 您已启用两步验证

* 您需要企业或非企业帐户

* 您需要上传到AppStore

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

  2. 将其设置为CI中的环境变量

方案5:

* 您已启用两步验证

* 您需要从AppStore Connect下载dsyms

  1. 运行
fastlane spaceauth -u user@email.com
  1. 将输出用作CI环境变量FASTLANE_SESSION

  2. 您仍然需要包括FASTLANE_USERFASTLANE_PASSWORD

请注意,此仅持续8小时


很好的解释!您是否也有下载“download_dsyms”的解决方案?我不小心启用了2FA。 - blackjacx
嗯...看起来它正在 pem 操作上发送 2FA。我能做些什么吗? - PoppyAnc
@PoppyAnc 不应该发生这种情况。 - blackjacx
我无法解决这个问题。我已经将飞船参考添加到我的fastlane文件中,并创建了我的App Store Connect密钥,并将其添加到我的fastlane团队连接设置中的应用程序中,然后触发了新的构建,但仍然失败。非常感谢任何帮助,我错过了什么?谢谢。 - Jack
1
谢谢@Ted,我不得不同时使用#5来进行pem和#2来进行pilot! - PoppyAnc
显示剩余6条评论

22

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

要解决此问题,我登录了Bitrise并切换到下面图片所示的新身份验证方法。

enter image description here

旧的身份验证方法基于单个Apple Developer用户的凭据,而新方法则基于生成API密钥。如下面截图所示,我需要在用户和访问 -> 密钥下创建一个API密钥,然后上传到Bitrise。

enter image description here

希望我的案例可以帮助其他人解决此问题。我相信,即使您使用不同的工具,您也需要更多或更少地遵循相同的流程。


谢谢分享。只是一个问题,你的Bitrise构建是在自动配置步骤失败还是在iTunes Connect部署步骤之后失败? - VMA92
2
@VMA92 在自动配置步骤中。实际上,我不得不将其更改为“新”版本,因为Bitrise文档在此处说明:https://devcenter.bitrise.io/getting-started/configuring-bitrise-steps-that-require-apple-developer-account-data/ - toioski

10

9

你检查过你的双重认证设置了吗?

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


2
不是,它解释了为什么问题出现,并且所呈现的信息是不正确的。 - Stephen Saucier

4

3

@prapin,你能否在下面的部分看一下我的解决方案“upload_ip”,它对我来说已经成功了。如果需要帮助,请告诉我们。 - Gangadhar
@Gangadhar 是的,我今天做了类似于你的解决方案,使用了从 Fastfile 中通过 api_key_path 引用的 JSON 文件,并且它起作用了。 - prapin

0
在我的情况下,以下解决方案适用于上传ipa文件。
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

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