Upgrade testing for iOS - application-identifier entitlement does not match

ArdenDev picture ArdenDev · Sep 22, 2016 · Viewed 12.4k times · Source

Previously with Xcode 7.3.1 I was able to build directly over my app store app on my iPad and test the upgrade scenario, which worked perfectly fine. This week I upgraded to Xcode 8 and when I try the exact same approach, I keep getting this upgrade error

"This application's application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed."

enter image description here

I tried multiple solutions posted on this thread and none of them worked. I also don't have a watch app. Just a simple iOS app target.

App installation failed due to application-identifier entitlement

I deleted my certs and provisioning profiles and recreated them and still the same problem. I then went and downloaded Xcode 7.3.1 and tried it again with the exact same problem.

Now I am stuck without being able to fully test my upgrade scenario.

PLEASE HELP !!

Answer

HammerSlavik picture HammerSlavik · Aug 18, 2017

I had the same issue while trying to upgrade application. And here what I've found:

I checked application-identifier entitlements of old app and new app. You can do that by running codesign -d --entitlements :- path/to/AppName.app/AppName or open file "archived-expanded-entitlements.xcent" at path "AppName.app/AppName".

Application-identifier of old app was "1234XXX5X6.com.mycompany.myapp" but in new app it was "1234XXX5X6.com.mycompany.myapp.develop".

Usually I set "Bundle Identifier" directly in Info.plist.

Info.plist Bundle Identifier property

But I didn't know that there is also a "Product Bundle Identifier" property in project Build Settings.

Build Settings Product Bundle Identifier property

The previous version of app was built with Xcode 7.3.1 and it had following settings:

  • Info.plist: com.mycompany.myapp
  • Build Settings: com.mycompany.myapp.develop
  • application-identifier: 1234XXX5X6.com.mycompany.myapp

The new version was built with Xcode 8.2.1 and it had following settings:

  • Info.plist: com.mycompany.myapp
  • Build Settings: com.mycompany.myapp.develop
  • application-identifier: 1234XXX5X6.com.mycompany.myapp.develop

Seems like new Xcode have different source for application-identifier. So I just corrected "Product Bundle Identifier" and my problem was solved.