Unable to update existing app store app [duplicate] - ios

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."
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 !!

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.
But I didn't know that there is also a "Product Bundle Identifier" property in project Build Settings.
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.

Remove the existing application from the device and Run again.

To fix this just enable "Automatic manage signing" from general tab of project settings.
I had also problem for running app on my device directly from xcode 8. Deleting and generation profile and certificate did not worked for me. But enabling "Automatic manage signing" worked for me.
Hope this helps!
Check this question of mine:
Xcode 8 shows error that provisioning profile doesn't include signing certificate

Here is one solution if you want to upgrade over your existing App Store app without deleting it but your application-identifier entitlement does not match. Upload an archive of your new build to the App Store and then use TestFlight to download it to your device. This is not as quick as building to the device, but it will overwrite your old app with your new build while keeping your old data in place. For (relatively) quicker turn-around testing of your upgrade process once you have a new build available on TestFlight:
Delete your app off of your device (assuming it was a recent build)
Download your app store build and generate some data
Download your TestFlight build, but don't run it
Build your newest build directly to the device
The TestFlight build overwrites the entitlement without deleting the old data, so Xcode happily will install your new build over the TestFlight build, but you are still testing your upgrade process as if you were building directly on top of the App Store version of your app.

I got this from an .ipa generated as a Jenkins artefact. The problem for me was that Jenkins was using a different provisioning profile.
I manually set Jenkins to use the same profile as the updated version that I was trying to install, and it started working.

Select the App Target and click on General, if you select or ticked checkbox automatically manage signing.
Untick this automatically manage signing and select appropriate signing provisioning profile and #Build and run again.
See the below photo.

Solved!! Short answer - delete old app from your iPhone
I went to my iPhone storage and used the search bar to find the offending app(because it wasn’t showing on the app list) and found an old version hidden, deleted it and now it works.

What worked for me was to go (within Xcode) to Window > Devices and Simulators, then select my iOS device and delete the app there. This is detailed in this Medium article.

Related

iTunes Connect submission code signing entitlements error Xcode 8

I am having trouble submitting my newest app update with Xcode 8 GM. I updated my iPhone and watchOS app in this update.
When trying to submit I get the following error:
iTunes Store operation failed. Invalid Code Signing Entitlements. Your
application bundle's signature contains code signing entitlements that
are not supported on iOS. Specifically, value 'QX3TDZXXXX.AppName'
for key 'application-identifier' in
'Payload/AppName.app/AppName' is not supported. This value
should be a string starting with your TEAMID, followed by a dot '.',
followed by the bundle identifier.
I set signing to automatic by checking "Automatically manage signing" in Xcode. Everything looks fine to me.
After searching for a solution everywhere I tried to change the Code Signing Identity in Build Settings to iOS Distribution. That also gives me an error right away:
AppName has conflicting provisioning settings. AppName is
automatically signed for development, but a conflicting code signing
identity iPhone Distribution has been manually specified. Set the code
signing identity value to "iPhone Developer" in the build settings
editor, or switch to manual signing in the project editor. Code
signing is required for product type 'Application' in SDK 'iOS 10.0'
I also:
cleaned project
restarted Xcode
rebooted my Mac
revoked my distribution certificate
Did someone else have a similar problem and knows how to fix it?
Thanks in advance!
What helped me was:
I unchecked "Automatically manage signing" and then check it on again.
After that Xcode told me it would reset the settings to the default and after that it finally worked.
I wasted more than a whole day on this but I finally found the solution!
Somehow in my Build Settings, the "Product Bundle Identifier" was only my apps name instead of the unique Bundle Identifier (e.g. com.YX.AppName).
Click on your project, choose your App, press Build Settings and search for "packaging". You should find it there.
Found this by creating a brand new project and comparing every single setting.
In case this is not what is wrong in your project, these are the things I found on this topic before. Maybe one of these things might help you:
project > Alt + Clean (Cleans the whole Build Folder)
restarted xcode (that helped many others!)
revoked all Provisioning Profiles and let Xcode create new ones (Xcode > Preferences > Accounts > View Details > Create next to iOS Distribution)
checked that all App ID names where right
for com.AB.CDE the name has to be "com AB CDE"
restarted PC
checked that Xcode and macOS were the newest version
Try this solution:
Create new "Provisioning profile" & import it.
Restart XCode
Uncheck "Automatically manage signing"
In the drop downlist select new provisioning profile.
Check "Automatically manage signing".
It should help you.
I had the same issue and none of the suggested workarounds here worked. I assumed it had to do something with how the XCode project is configured, so I tracked back and found out I was following this guide Building multiple versions of a React Native app and had missed the following step.
In the project’s info.plist, change the value of Bundle Identifier to
$(PRODUCT_BUNDLE_IDENTIFIER)$(BUNDLE_ID_SUFFIX)
EDIT : Turns out that was not the actual problem. I had to enable Push Notifications in Capabilities since the App ID on the developer console had it turned on.
Had the same issue. I restarted my laptop, rebuilt the release build, restarted Xcode, rebuilt the archives. Then it worked.

Can't create ipa from Xcode 7

My project was initially build with the early version of Xcode.
Even with Xcode 6 I was able to export the app (Ad Hoc, ipa file).
After that we started to use continuous integration & upload of builds to iTunes.
Also, I have deleted my working copy.
Recently, I have to make fixes in the project.I checked out the source code, updated my Xcode to the latest version - Xcode 7, updated the project.
But now when I am archiving the app, it goes under unknown app in Organizer, I can't create ipa ( Validate button is not active).
For some reasons the app, in the Organizer doesn't have a valid identifier
I tried to use a new
PRODUCT_BUNDLE_IDENTIFIER
and directly to set correct bundle ID, but I still have 2 items, instead of one app.
In build setting under build option Disable bitcode.
In build setting under deployment set false to skip install.

App installation failed due to application-identifier entitlement

I am unable to install a watchOS 2 WatchKit app due to an application-identifier entitlement. This happened after turning on App Groups in the Capabilities tab.
Full error:
App installation failed
This application's application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed.
This is running the app in debug mode on a physical device. Running just the iOS app works fine.
I have turned App Groups off again and removed the entitlements files that were added, but same error.
I had this problem with an iPhone app, and fixed it using the following steps.
With your device connected, and Xcode open, select Window->Devices
In the left tab of the window that pops up, select your problem device
In the detail panel on the right, remove the offending app from the "Installed Apps" list.
After I did that, my app rebuilt and launched just fine. Since your app is a watchOS app, I'm not sure that you'll have the same result, but it's worth a try.
I had this problem and was not able to resolve it without deleting and reinstalling the app (messing with provisioning profiles, as some here suggested, did not help).
However, I did not lose my existing test data. Here's how to do that, for anyone having this problem in the future:
Before removing the app, open the Xcode "Devices" window (that's cmd-shift-2).
Select your device and find your app in the "Installed Apps" list.
Click on the gear icon and select "Download Container...". This will copy all of the app's data to your Mac. Save that somewhere for now.
Delete the app and reinstall it from Xcode. Kill the app from Xcode (click the stop button), so it's not running.
Back in the "Devices" window, click the gear icon and select "Replace Container...". Select the data that you downloaded to your Mac in step 3.
Xcode will then restore your previously saved app data.
You now have your old test data back, and the app should run.
Delete any previous versions of App from your iPhone and then Clean->Build and Run again. Your app should run smoothly on your Device.
Also, please make sure you have not selected Distribution Certificate in your Project Settings while trying to run your project directly on your device.
You will get this error when your AppID prefix does not match the prefix of the previously installed app. If your app is already in the App Store, you will not be able to submit updates without restoring the original AppID prefix or contacting Apple.
Apple's instructions for handling this problem: https://developer.apple.com/library/content/technotes/tn2319/_index.html#//apple_ref/doc/uid/DTS40013778-CH1-ERRORMESSAGES-UPGRADE_S_APPLICATION_IDENTIFIER_DOES_NOT_MATCH_THE_INSTALLED_APP
If you did not intend to change the AppID prefix then Xcode is signing your app with the wrong provisioning profile.
If you do intend to change the AppID prefix (because the app was transferred to a new developer, or you are migrating from an old pre-2011 AppID) you must contact Apple to migrate an existing AppID to a new prefix.
You must also add the previous-application-identifiers entitlement to your app, listing all previous AppIDs (with old prefixes). And you must ask Apple to generate a provisioning profile for you that includes the previous-application-identifiers entitlement.
I solved this without deleting the app
With the project open in xcode.
Project -> Build Settings -> Code Signing -> Provisioning Profiles (drop down)
It is probably set to automatic and is choosing the wrong profile. Open the drop down and choose the correct one, then re-run the app.
I faced the same problem and was stuck for several minutes and after a search, the simplest solution that i found is just remove the previously installed app from your device manually and try to run the app from Xcode again.
Hope it helps you.
All the Best...
Steps
With your device connected, and Xcode open, select Window->Devices
Now select the app and download the container using setting icon
Delete the app
Install app again using Xcode
Stop from Xcode
Go to Window->Device and select the app and replace the container that is backup from previous app
This can be caused by App ID prefix, when you switching different developer accounts. See https://developer.apple.com/library/content/technotes/tn2311/_index.html for Apple's support.
Explanation
For me, this issue happened because I have signed in with a different account than the account I have installed the app on the iPhone with.
Solution
Just delete the app from the iPhone and run it again from Xcode.
I tried a few thing myself like updating/making new provisioning profiles, fixing entitlements in Apple Member Center and in project but in my case, I simply had to delete the application and re-run it.
o_O
This application's application-identifier entitlement does not match
that of the installed application.
NOTE: it says "...does not match the installed application"
I guess it happened for me because we added a new app extension and there must have been some target related migration issues? Not sure but anyways
I found that I had accidentally changed the provisioning profile to have a wildcard in it.
Ie., it went from com.companyname.appnickname to com.companyname.*
I made a new provisioning profile with the full name correctly named, downloaded it, set the Target->build settings->provisioning profile to that new profile, restarted xcode, got a bizarre error from xcode (it seemed to confuse my various app developer logins), restarted xcode again, and it worked!
I didn't want to delete the existing app, because I was trying to test what happens when a user upgraded their app to a newer version, so I had installed the app store version and then run my xcode with the newer version (which acts like 'upgrading' the app without removing any user data).
I had the same error and I solved it by changing Bundle Identifier to something new. After that it build project with no problem.
My steps:
Open Xcode
Go to General tab
Find Identity
Change Bundle Identifier to something new.
This happened when I tried installing over top of an adhoc build.
In most of the responses to this issue, there's one critical aspect being overlooked that was brought up by the original asker. The app needs to be installed without deleting the existing install. In my case, the app uses an SQLite database that stores quite a bit of data for the user. Obviously, if you delete the app, then you delete the data. A solution that allowed me to test it in the same way a user will update it was a must.
In my case, the issue was Xcode using a provisioning profile automatically generated by Xcode. This probably happened because I got a new computer and didn't transfer the distribution provisioning profile over. Not to mention, I had not updated the app in almost 2 years. So my original provisioning profile (which contains the Entitlements application-identifier) was long gone. Solution: in Xcode preferences-> Accounts-> Select the appropriate Apple ID-> View Details-> Under Provisioning Profiles, right-click on the Xcode-generated profile for that app (it's prefixed with XC iOS), and select Move to Trash.
On the developer website, create a new distribution profile with your App's ID. Download the new profile, double click and Xcode should automatically install it. Conversely, you could return to the profiles listed in Xcode and tap the Download button next to your newly created profile. Build the app and try running again. By the way, my Xcode is set to automatically manage code signing, which other than this issue works great.
I had the same issue. The bundle.identifier and the name of the project has to be the same. At least that was my issue.
I had the same error until I restored the watch to factory defaults as per https://forums.developer.apple.com/thread/17948
"Apparently if you have and existing WatchOS 1 app and try to update it to WatchOS 2 the bundle identifier changes and causes this error. If you update your watch you will need to do reset it if you had installed WatchOS1 app before updating that app to WatchOS2."
Even though I followed some few logical steps: uninstall app, rebuild project, the only solution that worked for me was: restart XCode. (XCode 8.1)
TLDR - delete the app from the device and run again.
In my case :
1. I compiled and run the app on the iPhone device.
2. I open in the setting the Capabilities and turn on the iCloud
3. Then I try to run the app again, boom, error : "App installation failed
This application's application-identifier entitlement does not match that of the installed application. These values must match for an upgrade to be allowed.
4.Then I deleted to app from the iPhone (after I read the answers here)
5.Everything works O.K
For the people who might be part of more than one team, this can be your problem:
If the app's bundle id is hard coded in your Info.plist then Xcode can get confused and throw this tantrum.
To fix:
Make sure that the bundle id is set as:
$(PRODUCT_BUNDLE_IDENTIFIER)
The accepted answer didn't work for me. To make it work I had to reset the Apple Watch to the last available backup.
Uninstall the main iPhone app, Watch app and build them again solves the problem.
I received this error after I moved from a 5s to a 6s.
I recovered the new 6s from a backup of the old iPhone.
Because of this on the new iPhone the old app was installed.
The old app did not show up in the 6s "Installed Apps" list!
I manually deleted this old app from the 6s and everything was fine.
I encountered this issue because I built to the phone with my code signing turned off from another machine, so you need to uninstall the app from the phone before installing/building to the phone with code signing on.
I faced the same issue today and resolving it by just changing the Display Name and Bundle Identifier from the previous App that also installed on my iPhone.
Steps:
Xcode -> General tab -> Find Identity -> Change Bundle Identifier
So, now I have two same Apps with same functionality but with two different names and identity.
In my case it was because of the certificate.
because my own certificate to sign the app wasn't part of the developper team (new employee), upgrading the app from the App Store to a new version wasn't allow.
So in case it happen to you and you can't manage to obtain a "good" certificate, just clone the git appStore version, open two Xcode projects, compile the old version, update the settings as you wish, the compile the new one and you're done.
a little bit dirty and tricky but I hope it could help someone.
My problem was the App ID in combination with the certificate used to create the provisioning profiles. None of my provisioning profiles were working because none of them were "Elgible" (created with a certificate that matched the App ID). I had moved development to a new machine, so perhaps this was the deeper reason. At any rate I had to create a new certificate, then new provisioning profiles with that certificate being careful to choose the right App ID when creating them. Good luck.
None of the answers above worked for me.
My problem: I had installed an App Version from Testflight, so, I just deleted both, the old app and the Testflight version, and is working again.
Accepting the pending agreements from the developer website and iTunes Connect website and reopening the project in X-Code solved the situation for me.
For me, this occurred after updating to XCode 11,
like the others have said, it is a signing issue.
What fixed it for me was to go to Developer portal > Certificates & Identifiers
Edit the provisioning profile you are using
List of certificates Screenshot
You'll see that there's certificate for XCode 11 (as seen on screenshot)
Just tick that box, re download the profile, and update your projects signing with the new profile.
With MacOS Catalina, your iPhone will be displayed in the 'Locations' sidebar of Finder windows (as long as you've got the Finder preferences set up to show external devices) - you can then access the files via the 'Files' option which is available from the bar near the top of the window, just below the title (in my case I had to click the '>' at the right).

Upgrade's application-identifier entitlement string does not match installed application -> rejecting upgrade

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!
Open Xcode - > Window -> Devices
Click on your device and remove the app you are trying to install from the installed apps list.
Try running now.
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.
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

Beta from Crashlytics fail to install build on testers' devices

I'm sending my app to testers with Beta from Crashlytics which is an amazing tool to do app testing.
I had every new tester's device UDID registered in my developer account and then distribute a new build.
My testers got email invitation and accessed app's installation which could not be completed on their device.
They kept seeing an alert showing up with message:
Unable to download app - MyApp could not be installed at this time -
Done / Retry
Testers' testing status are "installed" in my Crashlytics dashboard but they're actually not able to finish installation.
Please help me find any possible factor causing this problem.
Perhaps the provisioning profile embedded in the build has been invalidated. Use Xcode to create a new archive, then use Fabric to upload a new build with that archive.
Discussion:
In my case, I had deleted the provisioning profile in the Apple Developer Member Center that had been embedded in each of my Fabric Beta builds. This caused the app testers had previously installed to immediately crash when they tried to launch it (embarrassing). It also caused the "Unable to download app - MyApp could not be installed at this time - Done / Retry" issue when testers tried to (re)install the app via Fabric Beta. Uploading a new build with my new provisioning profile embedded fixed the issue (each tester had to install the new build).
I've run into this problem back on iOS8 and just recently saw it again for iOS9, the only thing that solved the install issue was for my users to delete any previous version that they had downloaded, restart their phone, and try again.
You can also verify with them if Crashlytics properly installed on their iDevice, I've seen more than once where the configuration profile caused the issue, it's worth removing that (Settings -> General -> Configuration Profile (towards the bottom)) and retrying the install.
This is usually caused by one of two problems:
Incorrect provisioning profile/code signing settings. Double- and triple-check that the following settings are the same for the project and the provisioning profile: bundle identifier, development vs. distribution, adhoc.
Caching - sometimes, even when you've done everything correctly, things still just go awry. In such cases, you can try: deleting the previous version of the app from your phone, cleaning your project, deleting and re-downloading provisioning profiles, and building the app again.
RubyMotion Solution
For me, it was because I was using a development distribution profile, but with the wrong entitlements. Well, entitlement, singular.
I still had the 'beta-report-active' entitlement enabled, which was not included with the development distribution profile I am using. It is instead included with the production distribution profile (which is needed to distribute to TestFlight). However, I just wanted to deploy to my local phone, and not air my dirty app laundry to my entire internal test group, so this is where I found myself.
In any case, removing the 'beta-report-active' entitlement fixed my issue.
I tried the normal route of checking for proper certs and also deleting the app and provisioning profile along with rebooting device. In my case it was installing on device A and not device B. Device A was older iPhone 5c running iOS 9 and device B was newer iPhone 8 running iOS 11.x. When I archived the app for distribution I was selecting device A during the archive. Once I selected "Generic Device" it worked. But I'm sure I've built in the past selecting a specific device instead of generic and it worked. I was using Xcode 8.2, but I don't believe the Xcode version matters.

Resources