19

The identifierForVendor is not supposed to change unless all apps by the vendor are removed from the device. What happens if I have a single application that is updated. Can the identifierForVendor change? Another way of formulating this question is: Is an app upgrade the same as an uninstall and install (at least in some sense)?

The reason I ask is that if I install the current version of an app from the App Store, and then "Archive" a new version via XCode and install it over iTunes the identifierForVendor changes. I don't know if this is a special case or if this is also the case with a "normal" App update/upgrade.

Omar Kohl
  • 1,372
  • 2
  • 15
  • 32
  • are the identifiers you used for itune's version and xcode's version same ? If both are same than identifierForVendor doesn't changes otherwise it creates 2 separate apps in the device – Rohan Jun 24 '13 at 06:45
  • what the solution you tried, for product specific app its difficult to deal with the users subscription. what should i use (my app is product specific) in place of VendorID? – Ravi Sharma Jan 22 '14 at 06:43
  • http://stackoverflow.com/questions/30510921/why-does-ios-get-a-new-identifierforvendor-when-app-updates I experienced this problem – Esqarrouth May 28 '15 at 15:29

2 Answers2

2

Short answer - In the described case the identifierForVendor will be different.

But for users downloading from AppStore, it will be the same. IF the version is 6.1 and up. There are known issues with 6.0.x.

I have verified this with Apple Support and by submitting my own application update to AppStore.

Dima Gutzeit
  • 221
  • 4
  • 3
  • We're planning to release on update of one of our apps, do you know any workaround to make the identifierForVendor the same when installing from iTunes? We need it to be the same since we have to test how will the new version of the app handle the old version's data (data is encrypted using this value as the key) – Juan Campa Dec 18 '13 at 23:26
1

It is not supposed to change when updating the app from app store as is described in the documentation.

If you are updating an itunes-installed app, then updating it using Xcode or an ipa based on ad hoc provisioning or any provisioning, you will get a different value. You need to make it consistent, Adhoc to adhoc, dev to dev, app store to app store.

Again update from app store is not supposed to change. HOWEVER. Be cautioned about this. There was a bug affecting the calculation of identifierForVendor that occured between May and July of 2015. If you are relying on this value in any of your encryption schemes, chances are you may not be able to decrypt it. Apple has claimed to have rectified the issue and now pushing another update should restore the original value as it was before the critical period.

In any case, you should gracefully handle when identifierForValue changes during updates.

chalcopyrite
  • 297
  • 4
  • 6