Note: I'm developing using Xamarin. Similar question posted in Xamarin Forum here
I'm creating an app called, say CompanyApp. Then I created an App ID for it com.Company.CompanyApp, along with Distribution Provisioning Profile that uses the corresponding App ID. I uploaded the binary and it worked perfectly fine.
Then I went on create a demo version of the app (basically the same app with small modification, so it's the same solution & project, just different bundle signing setting), CompanyAppDemo with a new App ID com.Company.CompanyAppDemo, along with a new Distribution Provisioning Profile that uses the new App ID. I updated the iOS Bundle Signing options to use the new Provisioning Profile and generated the IPA. But when I uploaded this to Application Loader, I got the following error:
[2015-01-23 16:08:21 SGT] ERROR: ERROR ITMS-90164: "Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile. According to the provisioning profile, the bundle contains a key value that is not allowed: 'TEAMID.com.Company.CompanyApp' for the key 'application-identifier' in 'Payload/CompanyApp.app/CompanyApp'"
[2015-01-23 16:08:21 SGT] ERROR: ERROR ITMS-90046: "Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported on iOS. Specifically, value 'TEAMID.com.Company.CompanyApp' for key 'application-identifier' in 'Payload/CompanyApp.app/CompanyApp' is not supported. This value should be a string starting with your TEAMID, followed by a dot '.', followed by the bundle identifier."
I have been debugging for days to figure out to no avail.
I am wondering why when I signed with the new profile, the error that Application Loader threw refer to the ID of the original TEAMID.com.Company.CompanyApp instead of TEAMID.com.Company.CompanyAppDemo? Is this a bug in Xamarin that pick up a wrong provisioning profile or am I missing something? You don't need different certificate for different app right?
Note that I have always refreshed the Provisioning Profile list in XCode > Preference before changing the iOS Build Signing option in Xamarin.
Build Phase
in XcodeHurray, You are done with it. Problem solved
For me I had the wrong file in my Custom Entitlements setting under iOS Bundle Signing. Removed it and it worked!
This can also be caused by you having to agree to a new contract in iTunes connect. Log in to iTunes connect and you should see a banner at the top prompting you to agree to the latest contract change.
For me, I was able to solve it by turning off / on again the automatic code signing feature:
Doing a proper Xcode 'Quit' and then restart was the final action that got it working for me.
I had changed the bundle identifier (for a demo version) and got the same error (as detailed in the question) when verifying my archived build. I am using Xcode. Just closing Xcode and reopening my project wasn't enough, but a full 'Quit' was. Something was probably cached somewhere I'm guessing.
I had the same problem and solved with a simple Product -> Clean.