Reputation: 3297
I've been using "OTA" distribution of my ad hoc distribution for beta testing for years. It's always worked. Last version was in May. Worked great.
The general idea is that the .ipa and .plist are on our server. I have a page with a itms-services: link to the .plist, which contains the URL of the .ipa, which is also on our server.
Just uploaded a new version for our beta testers. I can download it to my iPhone and iPad OTA just fine. Beta testers say they click the link on our website and nothing happens at all. When I do it, I get the normal message asking me if it's OK to install the app. I answer yes, then the app is downloaded and everything works great.
I have connected my iPad to XCode and removed all mobile provision files and the app. Then I did an install from the website and it worked fine. But every single one of my beta testers say it doesn't work. They don't even get the prompt that asks if it's OK to install. They say nothing happens when they tap the itms-services link.
I've confirmed that all their UDIDs are in the provisioning profile.
Here's what the itms-services link looks like:
<a href="itms-services://?action=download-manifest&url=https%3a%2f%2fwww.example.com%2fexample.plist">Install Application</a>
Here's what the .plist looks like:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://www.example.com/example.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.example.example</string>
<key>bundle-version</key>
<string>3.3.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>Example</string>
</dict>
</dict>
</array>
</dict>
</plist>
I've substituted "example" for my domain and app; there are no spaces in either name (others have mentioned that problem in other questions -- just wanted to clear that up).
Upvotes: 2
Views: 498
Reputation: 3297
I was finally able to find an answer here which links to this blog article. Turns out this is a bug in iOS 8 that Apple hasn't bothered to fix. iOS 8 will not download an ad hoc distribution when there is a previous version of the app already installed (or perhaps, installed before the iOS 8 upgrade). It works if there's a developer certificate on the device, which is why it works for my devices even though I removed the provisioning profiles from the devices.
EDIT: This is fixed in iOS 9, but I find that iOS 9 users must first delete the released App Store version of the app before installing the beta. Other than that, Ad Hoc distribution is working great in iOS 9, especially with the expansion of the number of devices that can be registered in a provisioning profile (100 iPads, 100 iPhones, 100 iPod touches, instead of 100 total devices).
Upvotes: 1