WARNING ITMS-9000: "Potential Loss of Keychain Access"

deko picture deko · Sep 25, 2014 · Viewed 24.5k times · Source

I've got the following warning while uploading a new version of the application:

WARNING ITMS-9000: "Potential Loss of Keychain Access. The previous version of software has an application-identifier value of ['52T2NMS37N.com.(my-app-id)'] and the new version of software being submitted has an application-identifier of ['FCGA72C62G.com.(my-app-id). This will result in a loss of keychain access. For more information, please consult (url)".

The issue may be because the application was transferred into another account.

The build was uploaded with the warning, but what does it mean?

Answer

OrdoDei picture OrdoDei · Nov 26, 2014

From Apple's Documentation Archive, on Resolving the Potential Loss of Keychain Access warning

Potential Loss of Keychain Access. The previous version of software has an application-identifier value of 'A1B2C3D4E5.com.company.app' and the new version of software being submitted has an application-identifier of '5E4D3C2B1A.com.company.app'. This will result in a loss of keychain access.

Note: This is a warning, not an error. You have the option of proceeding with the submission regardless of this warning, however this document should be used to determine whether you can safely ignore it. This warning indicates that the App ID prefix of the pending submission differs from the App ID prefix of the live app in the app store.

Important: The only apps that can safely ignore this warning are those that do not use technologies that rely on the App ID prefix, like keychain access, Handoff, and UIPasteboard sharing.

Note: Apps that are migrating their App ID from an arbitrary Bundle Seed ID to their more-modern Team ID should expect this warning, and proceed with the submission.

For apps that do utilize technologies that rely on the App ID prefix, this warning should not be ignored. The Potential Loss of Keychain Access warning is an indication that the app was code signed with the wrong provisioning profile.

To resolve the problem:

  1. You must locate or re-create a provisioning profile that uses the correct App ID prefix on the Certs IDs & Profiles website.
  2. Click Edit on the profile to be certain the prefix is correct.
  3. Click Download and save the profile to disk.
  4. Optionally double check the App ID Prefix on the downloaded profile using the Terminal command in: How do I check the entitlements associated to my Provisioning Profile?
  5. Drag the profile onto the Xcode icon on your Dock to install it.
  6. Re-submit the app and code sign it with the newly restored profile that is associated to the right prefix.

"Keychain access" refers to all the functions in the Keychain Services Reference.