Xcode 9: Provisioning profile is Xcode managed, but signing settings require a manually managed profile

Cœur picture Cœur · Sep 22, 2017 · Viewed 19.5k times · Source

I need to archive my app for submission to iTunes Connect.

It was OK with Xcode 8.3.3:
enter image description here

It's NOT OK with Xcode 9.0:
enter image description here

When archiving, I get:

Code Signing Error: Provisioning profile "XC iOS: *" is Xcode managed, but signing settings require a manually managed profile.
Code Signing Error: Code signing is required for product type 'Application' in SDK 'iOS 11.0'

The two screenshots are taken from the same computer, same workspace. enter image description here

I can't use "Automatic" because it would change the provisioning profile to a different one, then after uploading to iTunes Connect I would get:

Potential Loss of Keychain Access - The previous version of software has an application-identifier value of ['YBDK7H6MLG.com.ef.english24-7'] and the new version of software being submitted has an application-identifier of ['GEEM4BQ58H.com.ef.english24-7']. This will result in a loss of keychain access.

How do I make a release targeting iOS 11 without losing keychain access?

Answer

Cœur picture Cœur · Sep 22, 2017

Thanks to all for helping.

Xcode 9 does not accept Xcode-generated Provisioning Profile (with "XC iOS" in the name). So the solution is to clone the Xcode-generated Provisioning Profile in a new one with a different name.

  1. Ask your Team Agent to make you "Admin" in the team in order to manage provisioning profiles

  2. Create a new Provisioning Profile or Edit an existing one with:
    Edit Provisioning Profile

  3. Change the App ID to the one from Xcode:
    enter image description here

  4. Change the Certificate to the correct one (not necessarily the latest):
    enter image description here

  5. Click Generate

  6. Click Download

  7. Double-click it on your computer

  8. Select it for your signing:
    enter image description here

  9. Archive

  10. When exporting, check that your application-identifier and keychain-access-groups are correct:
    enter image description here