Enterprise App Update Distribution on iOS 8

I am having the same problem. I reproduced it by:

1) Having my application installed while upgrading from iOS 7 to iOS 8 GM

2) Removing it in iOS 8

3) Trying to install it via itms-services: with the same bundle name

When I tried to change the bundle-identifier in the server plist (not in the applications Info.plist), it worked (application was downloaded an no "shadow" icon remained). But it looks like an apple bug.


I've also encountered this problem with our app distribution. We were able to fix this issue by 'faking' the bundle identifier inside the .plist using for download distribution, keeping our ipa bundle identifier the same.

For example, in your plist:

<key>bundle-identifier</key>
<string>com.mycom.MyApp</string>
<key>bundle-version</key>
<string>0.2.2</string>

change com.mycom.MyApp to com.mycom.MyApp.ios8fix

The app will be installed using a new app icon, which will disappear after install.

If you already have an install of the app, you will even see a new app icon during install. After the installation this icon disappears, but your already existing version of the app will be updated. With a clean install the installation icon will disappear and the installed application icon will appear in place.

It looks like iOS 8 is caching the bundle identifiers and compares the requested installs with these cached ones. Most of the times you'll only see an popup asking for install, but nothing happens.

As Sean already noticed, this appears with xCode 6 GM and the official iOS 8 version. Devices which never installed your application before will have no problems to install the app.


The accepted solution no longer works on iOS9.

My understanding is that Apple has closed a serious iOS security hole by preventing adhoc binaries from replacing stock apps or apps downloaded from the App Store. See this article for background (CVE-2015-3722/3725 and CVE-2015-3725):

https://www.fireeye.com/blog/threat-research/2015/06/three_new_masqueatt.html

Taken the security implications, I wouldn't expect this behaviour to change in future IOS versions. Alternative options seem to be:

  • delete the App Store version before installing the adhoc
  • distribute the adhoc as 'new' app by changing the bundle id in both the app and the distribution plist
  • use TestFlight

This worked better for me, no need to touch your manifest or other trickery (perfect for Xcode Server where the plist is auto-generated):

  1. Download iExplorer (http://www.macroplant.com/iexplorer/)
  2. Plug your device
  3. Delete all the files in "Media > Downloads"
  4. Restart device

This resets the device caches, now you can install your app as usual.