Testing upgrade for iOS - rights to application ID do not match

Previously, with Xcode 7.3.1, I was able to build directly on my App Store application on my iPad and test the update script, which worked perfectly. I upgraded to Xcode 8 this week, and when I try to use the same approach, I keep getting this update error

"This right to the application identifier does not match the purpose of the installed application. These values ​​must match the update permission."

enter image description here

I tried several solutions posted in this thread and none of them worked. I also do not have a watch application. Just a simple iOS target program.

Failed to install the application due to the right to the application identifier

I deleted my certificates and training profiles, and recreated them, and still the same question. Then I went and downloaded Xcode 7.3.1 and tried again with the same problem.

Now I'm stuck without the ability to fully test my update script.

PLEASE, HELP!

+6
source share
5 answers

Remove the existing application from the device and run it again.

+3
source

I had the same problem when trying to update the application. And here is what I found:

I checked the permissions of the identifier application of the old application and the new application. You can do this by running codesign -d --entitlements :- path/to/AppName.app/AppName or open the file "archived-extended-rights.xcent" along the path "AppName.app/AppName".

The application identifier for the old application was "1234XXX5X6.com.mycompany.myapp", but in the new application was "1234XXX5X6.com.mycompany.myapp. Develop ."

I usually set the " Bundle Identifier " directly to Info.plist .

Info.plist Package Identifier Property

But I did not know that in the Build Settings project there is a property << β†’ Product Bundle Identifier ..

Property ID property of the assembly parameter set

The previous version of the application was built using Xcode 7.3.1 and had the following settings:

  • Info.plist: com.mycompany.myapp
  • Build Settings: com.mycompany.myapp. development
  • Application ID: 1234XXX5X6.com.mycompany.myapp

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

  • Info.plist: com.mycompany.myapp
  • Build Settings: com.mycompany.myapp. development
  • Application ID: 1234XXX5X6.com.mycompany.myapp. Development

It seems that the new Xcode has a different source for the application id. So I fixed " Product Identifier> " and my problem was resolved.

+3
source

To fix this, simply enable the "Automatic Signing Management" on the general tab of the project settings.

I also had a problem running the application on my device directly from xcode 8. Deleting and generating the profile and certificate did not work for me. But for me, the "Automatic Signing Management" feature worked.

Hope this helps!

Check this question: Xcode 8 shows that the provisioning profile does not include certificate signing

+1
source

Here is one solution if you want to update an existing App Store application without uninstalling it, but your right to the application ID does not match. Download the archive of your new build in the App Store, and then use TestFlight to download it to your device. This is not as fast as creating a device, but it will overwrite your old application with your new assembly, while preserving your old data. For (relatively) faster retesting of your upgrade process when you have a new build available in TestFlight:

  • Remove the application from your device (if it was recently built)
  • Download the application store assembly and create some data.
  • Download the TestFlight assembly, but do not run it
  • Create your new assembly directly on the device

The TestFlight construct overwrites the right without deleting old data, so Xcode will happily install your new assembly on top of the TestFlight assembly, but you are still checking the upgrade process as if you were building your application directly on top of the App Store version.

+1
source

I got this from a .ipa created as a Jenkins artifact. The problem for me was that Jenkins used a different collateral profile.

I manually installed Jenkins to use the same profile as the updated version I was trying to install, and it started working.

0
source

All Articles