13

I have an iOS app that is now around 3 years old. It is signed with an enterprise profile. We have released seven versions of the software, the last time being almost a year ago. Currently we are trying to do a new release but have found that due to the new security rules in iOS8 that iOS 8.1.3 devices and greater cannot upgrade and must delete and reinstall.

In researching I found similar issues for people who are signing the app with a different profile, but our app is being signed with the same profile. The error claims that our old application-identifier contained a wildcard, which I cannot figure out since we have never changed the bundle id(but, in the developer portal our general appId for all our apps is com.company.*).

I have found that if I build both version 1 and version 2 of the app with Xcode 6.4 I can upgrade successfully and if I build both versions of the app with Xcode 5.1 I can upgrade successfully, the problem is when trying to install a version of the app built with Xcode 6.4 over a version built with Xcode 5.1

The error we get when we attempt the upgrade is:

"Upgrade's application-identifier entitlement string (6Q39SSX4QT.com.company.appName) does not match installed application's application-identifier string (6Q39SSX4QT.com.company.*)"

I have seen some references to needing to include an entitlements.plist file in our app, we have a AppName.entitlements plist file, but none of our apps have a entitlements.plist file(and our other apps do not exhibit this problem though they have been upgraded multiple times since Xcode 5.1 released).

Anyone have any ideas?

Thanks!

drew2dev
  • 161
  • 1
  • 1
  • 5
  • I'm facing the same issue with the company wildcard ID. Manually copying an entitlements file into the root of the ipa does not help. – zcMACK Jul 29 '15 at 19:08

3 Answers3

18
  1. Open Xcode - > Window -> Devices
  2. Click on your device and remove the app you are trying to install from the installed apps list.
  3. Try running now.
UIResponder
  • 787
  • 8
  • 15
  • 12
    This literally just deletes the old app from your device. You can do that the old fashioned way, too. This does not fix the upgrade problem, just works around it. – Oded Sep 22 '16 at 16:41
2

After doing some further reading, I found this answer to be helpful. In my case, I am building via a grunt script so I can modify my archive/sign/package step to insert the entitlements during the codesign step.

If you follow the steps I linked, you will want to make sure your entitlements.plist file contains the wildcard as shown below:

<key>application-identifier</key>
<string>com.company.*</string>

If you are doing the app packaging manually, you may want to look at iResign. This will create the entitlements.plist file for you and inject it while signing your app.

I wish there was better documentation available from Apple on this. I cannot get the same effect in XCode no matter what I specify in my target's Code Entitlements settings.

Community
  • 1
  • 1
zcMACK
  • 93
  • 1
  • 6
  • this should be the correct answer, new version of the Xcode no longer generates wildcards in the entitlements (located in the build folder's `appname.app.xcent`), the fastest way to make the installation works would be edit the xcent file directly after Xcode generate it, or codesign manually with `--entitlements` as the above answer – vk.edward.li Jun 13 '19 at 18:52
2

I have just had this error - it was because I had changed the development team used to sign the app. Ie I used our company's distribution profile to sign the development version and the client's distribution profile to sign a release version.

Check that the team id in the entitlements is the correct team id (printed in the error message) -> then its the installed app that is wrong. Also check that you haven't specified an application-identifier in an entitlements file. I didn't have an entitlements file at all.

In this case simply delete the app on the device and reinstall it fresh.

Chris

chrisoneiota
  • 404
  • 4
  • 5