Uploading iOS app to Test Flight Error: "Invalid Code Signing Entitlements".

Please provide the following:

  1. SDK Version: 36.0.0
  2. Platforms(Android/iOS/web/all): Android, iOS

I want to roll out my app to Test Flight, but I am getting stuck on an error:

"ERROR ITMS-90163: "Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile. The bundle contains a key that is not included in the provisioning profile: ‘com.apple.developer.icloud-services’ in ‘Payload/ExpoKitApp.app/xxxxxxx’."

Annotation 2020-06-20 211313

What I have tried:

  1. Deleting all the certificates and provisioning profile using Expo CLI:
    expo build:ios --clear-provisioning-profile
    Also tried:
    expo build:ios -c, and then saying “Let expo handle everything for me.”
    And then uploading using expo upload:ios
  2. Deleting everything manually on https://developer.apple.com/account and then rebuilding using expo build:ios and uploading via CLI again.
  3. Using build methods from (1) and (2), manually try uploading from Apple’s Transporter application.
  4. My XCode is updated. My Expo-CLI is updated.

I have created the app in App Store connect, but cannot upload any build to the app, because I cannot get the IPA file to actually get on to the apple pages.

Any help would greatly be appreciated.
Sorry for tagging you guys, but I have seen in similar posts you guys seem to have answered. @adamjnav @charliecruzan

I figured out what the problem was (and a way to fix similar problems)!

Start off by actually reading the error message. My problem was that I had “iCloud services” enabled in the app.json of my expo project, but I did not have it set up correctly in the provisioning profile of the app.
I was using Expo Document Picker which requires “iCloud services to be enabled”, which I set up in the app.json but never enabled in the Apple side of things.

I fixed the error by checking the “iCloud” checkbox:
https://developer.apple.com/account/ -> Certificates, IDs, & Profiles -> Identifiers -> click your app identifier -> click the related checkbox.

This seems to be the way to fix all “Invalid Code Signing Entitlements” issues, such as those that have issues with associated domains ITMS-90046 [like this example], fonts ITMS-90045 [like this example], and my example ITMS-90163.

After you have checked the relevant checkbox in the identifier, you need to rebuild your your project with expo build:ios -c and say YES to everything to clear all your certificates and provisioning profile. Your identifier does not change when you do this.

After that just upload as normal using expo upload:ios with all of the required flags.

Happy to hear you got this sorted out and thanks for sharing your solution with everyone, @akumau1!

We’re going to add something to the docs in hopes to help people resolve this error quickly if they encounter it.