AdHoc install broken on iOS 8.4 ExternalDownload Manifest

When I try to install an ad hoc build of my app on iOS 8.4 by tapping an itms-services:// URL in Safari, nothing happens. This appears in the iOS device console:



Aug 26 16:03:49 iPad-Olip4-Federico wifid[36] <Notice>: WiFi:[462290629.048322]: Client itunesstored set type to background application
Aug 26 16:03:49 iPad-Olip4-Federico wifid[36] <Notice>: WiFi:[462290629.049135]: __WiFiManagerSetEnableState: state TRUE, manager->enable.setting TRUE, manager->unlockedSinceBoot TRUE
Aug 26 16:03:49 iPad-Olip4-Federico wifid[36] <Notice>: WiFi:[462290629.050544]: Background Network Application entered
Aug 26 16:03:49 iPad-Olip4-Federico wifid[36] <Notice>: WiFi:[462290629.050775]: BG Application: Not Present, BG Daemon: Present. Daemons: itunesstored
Aug 26 16:03:49 iPad-Olip4-Federico itunesstored[109] <Warning>: ExternalDownloadManifest: Skipping download and install of: it.ferlini.Olip-Mjus-Orders


The error occured in some devices. We did identify any differences between ipad.

Did you find a solution to this?

This seems to be intended behaviour in iOS 8.4 and later, to prevent "Masque" attacks:


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


There was a loophole in 8.4 to work round this by changing the bundle identifier in the plist (leaving the identifier in the ipa unchanged), but this has been closed in iOS 9. So you now can't install an ad-hoc build of an app over an App Store version: Apple wants us to use TestFlight instead. I can understand that, but it's adding extra work for us, because we want to switch between debug / ad-hoc / released builds when testing, while retaining the app's data, and to include older iOS versions that aren't supported by TestFlight.

AdHoc install broken on iOS 8.4 ExternalDownload Manifest
 
 
Q