Getting error "Need to acknowledge to Apple's Apple ID and Privacy statement."
Solution 1
Summary:
Case 1:
* You don't want 2FA enabled
- Update Gemfile with fastlane 2.173.0 and run
bundle install
,bundle update fastlane
, orbundle update
- Use
SPACESHIP_SKIP_2FA_UPGRADE=1
in your CI
Case 2:
* You have 2FA enabled
* You only need non-enterprise account
- Generate
APP_STORE_CONNECT_API_KEY
from appstore connect using an Account Holder role.
It looks like
-----BEGIN PRIVATE KEY-----\nabcdef12345abcdef12345\n-----END PRIVATE KEY-----
- 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
- 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
- Run
fastlane spaceauth -u [email protected]
-
Use the output as
FASTLANE_SESSION
environment variable on your CI. -
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
-
Create FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD from https://appleid.apple.com/account/manage
-
Set it as environment variable in your ci
Case 5:
* You have 2FA enabled
* You need to download dsyms from appstore connect
- Run
fastlane spaceauth -u [email protected]
-
Use the output as
FASTLANE_SESSION
environment variable on your CI. -
You still need to include
FASTLANE_USER
andFASTLANE_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.
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.
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
EDIT
Pull request has been merged and API authentication now works and is the preferred way to authenticate.
Comments
-
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 about 3 yearsthanks for sharing.. Just a question was your bitrise build failing at the auto provision step or later at the itunes connect deployment step?
-
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 about 3 yearsNo, it explains why the problem arose and that the message presented is incorrect.
-
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 about 3 years@Gangadhar Yes, I did today something similar to your solution, with a JSON file referred from
Fastfile
byapi_key_path
, and it worked. -
blackjacx about 3 yearsNice explanation! Do you also have a solution for when I need download_dsyms ? I have 2FA enabled accidentially 😅
-
Ted about 3 yearsHi @blackjacx I added it as case 5
-
PoppyAnc about 3 yearsIs 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 about 3 yearsFor upload_to_testflight, no username required
-
PoppyAnc about 3 yearshmm.. looks like its sending 2FA on pem action. Is there anything I can do?
-
Ted about 3 years@PoppyAnc can you try case 5 for pem as well?
-
blackjacx about 3 years@PoppyAnc nope this should not happen
-
Jack about 3 yearsI'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 about 3 yearsHey @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 about 3 yearsThanks Ted, I've sent you an email!
-
PoppyAnc about 3 yearsThanks @Ted, I had to use both #5 for pem and #2 for pilot!