Getting error "Need to acknowledge to Apple's Apple ID and Privacy statement."

11,815

Solution 1

Summary:

Case 1:

* You don't want 2FA enabled

  1. Update Gemfile with fastlane 2.173.0 and run bundle install, bundle update fastlane, or bundle update
  2. Use SPACESHIP_SKIP_2FA_UPGRADE=1 in your CI

Case 2:

* You have 2FA enabled

* You only need non-enterprise account

  1. Generate APP_STORE_CONNECT_API_KEY from appstore connect using an Account Holder role.

enter image description here

It looks like

-----BEGIN PRIVATE KEY-----\nabcdef12345abcdef12345\n-----END PRIVATE KEY-----
  1. Add it to your CI as APP_STORE_CONNECT_API_KEY environment variable
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. Pass it to your lanes
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)

Case 3:

* You have 2FA enabled

* You need enterprise account and fetch profiles

  1. Run
fastlane spaceauth -u [email protected]
  1. Use the output as FASTLANE_SESSION environment variable on your CI.

  2. You still need to include FASTLANE_PASSWORD

Note that this only lasts for 8 hours

Case 4:

* You have 2FA enabled

* You need enterprise or non-enterprise account

* You need to upload to appstore

  1. Create FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD from https://appleid.apple.com/account/manage

  2. Set it as environment variable in your ci

Case 5:

* You have 2FA enabled

* You need to download dsyms from appstore connect

  1. Run
fastlane spaceauth -u [email protected]
  1. Use the output as FASTLANE_SESSION environment variable on your CI.

  2. You still need to include FASTLANE_USER and FASTLANE_PASSWORD

Note that this only lasts for 8 hours

Solution 2

I had the same exact issue using Bitrise (another CI/CD tool). The error message was misleading because it wasn't related to accepting some new policies, but to the new authentication system used by the App Store Connect API.

To fix the issue I logged in Bitrise and I had to switch to the new authentication method as shown in the image below.

enter image description here

The old auth method was based on the credentials of a single Apple Developer user, the new method instead is based on the generation of an API Key. As you see from the screenshot below, I had to create an API key under User and Access -> Keys and then upload it to Bitrise.

enter image description here

I hope my case can help someone else to fix the issue. I am pretty sure you have to follow more or less the same procedure even if you're using a different tool.

Solution 3

I was experiencing it with an Apple account to authenticate and authorize the fastlane actions.

Changing my CI to use Apple API key seems to solve the issue.

Fasltane should use app_store_connect_api_key

Here the docs: http://docs.fastlane.tools/actions/app_store_connect_api_key/#app_store_connect_api_key

Solution 4

Have you checked your 2FA settings?

Apple announced that: "Starting February 2021, additional authentication will be required for all users to sign in to App Store Connect."

Solution 5

For Azure DevOps users a temporary SPACESHIP_SKIP_2FA_UPGRADE=1 works while we wait for AppStoreConnect Api key support to be merged:

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

spaceship skip 2FA upgrade


EDIT


Pull request has been merged and API authentication now works and is the preferred way to authenticate.

AppStoreConnect API authentication

Share:
11,815
Ted
Author by

Ted

Email me for anything, [email protected]

Updated on June 03, 2022

Comments

  • Ted
    Ted almost 2 years

    Hi we're getting this error when using fastlane sigh/get_provisioning_profile. I don't think it is a fastlane issue as it happened before case1 case2 and got fixed by accepting the agreement or other unknown reason..

    Need to acknowledge to Apple's Apple ID and Privacy statement. Please manually log into https://appleid.apple.com (or https://appstoreconnect.apple.com) to acknowledge the statement.

    We went to

    but there's nothing to approve there.

    Any ideas?

  • VMA92
    VMA92 about 3 years
    thanks for sharing.. Just a question was your bitrise build failing at the auto provision step or later at the itunes connect deployment step?
  • toioski
    toioski about 3 years
    @VMA92 at the Auto Provision step. Indeed I had to change it to its "new" version as the Bitrise documentation is saying here: devcenter.bitrise.io/getting-started/…
  • Stephen Saucier
    Stephen Saucier about 3 years
    No, it explains why the problem arose and that the message presented is incorrect.
  • Gangadhar
    Gangadhar about 3 years
    @prapin can you take a look at my solution "upload_ip"a in the below section and it worked for me successfully. Let us know for any help
  • prapin
    prapin about 3 years
    @Gangadhar Yes, I did today something similar to your solution, with a JSON file referred from Fastfile by api_key_path, and it worked.
  • blackjacx
    blackjacx about 3 years
    Nice explanation! Do you also have a solution for when I need download_dsyms ? I have 2FA enabled accidentially 😅
  • Ted
    Ted about 3 years
    Hi @blackjacx I added it as case 5
  • PoppyAnc
    PoppyAnc about 3 years
    Is it normal to use app_store_connect_api_key and fastlane to prompt me for apple userID and password? I thought that I am using the api key in order to avoid 2FA.
  • Ted
    Ted about 3 years
    For upload_to_testflight, no username required
  • PoppyAnc
    PoppyAnc about 3 years
    hmm.. looks like its sending 2FA on pem action. Is there anything I can do?
  • Ted
    Ted about 3 years
    @PoppyAnc can you try case 5 for pem as well?
  • blackjacx
    blackjacx about 3 years
    @PoppyAnc nope this should not happen
  • Jack
    Jack about 3 years
    I'm not able to get pass this problem. I've added the spaceship reference into my fastlane file and I've created my app store connect key and added it into my fastlane teams connection setting for the app and then triggered a new build but it still fails. Any help much appreciated, what am I missing? Thank you
  • Ted
    Ted about 3 years
    Hey @Jack note that you don't need FASTLANE_PASSWORD when you are using the api key. You may contact me in linkedin.com/in/gonzalezted lets debug it
  • Jack
    Jack about 3 years
    Thanks Ted, I've sent you an email!
  • PoppyAnc
    PoppyAnc about 3 years
    Thanks @Ted, I had to use both #5 for pem and #2 for pilot!