问题
I have an application that is built with xcode 6.1.
I created a plist to go with it.
It downloads just fine on iOS 8.0.2 and before, however, it always fails to install on any iOS 8.1 devices.
Here are my steps I am following.
Archive the ipa file using the created certificate and provisioning profile Host the plist and ipa file in your server
Include a download html file with a href tag with src
"itms-services://?action=download-manifest&url=https://mypassagewaytest.gwic.com/gw/premcalc/iPremium.plist"
And my plist
<?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://mypassagewaytest.gwic.com/gw/premcalc/iPremium.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.gwic.premiumcalculator</string>
<key>bundle-version</key>
<string>1.3.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>iPremium</string>
</dict>
</dict>
</array>
</dict>
</plist>
回答1:
Solved. I just update the provision profile by downloading latest enterprise distribution profile from developer.apple.com. I was facing the same issue. But I am using Xcode 6.0.1. Now everything is working like a charm, (Testflightapp and my own server both)
回答2:
ok, Here is what i found after struggling on this for a day.
This is how your Plist should look 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>display-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://downloadLocation.com/icon_57x57.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>needs-shine</key>
<true/>
<key>url</key>
<string>https://downloadLocation.com/icon_512x512.png</string>
</dict>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://downloadLocation.com/iOSBuild.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.company.Product.g34askas6jas77skks6777s7s7s77</string>
<key>bundle-version</key>
<string>x.x</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>appName</string>
</dict>
</dict>
</array>
</dict>
</plist>
Interesting things here
You need to have "display-image" and "full-size-image" dictionary keys in your Plist from 8.0 onwards. For me app didn't download on 8.0 unless I had these keys.
You need to append some extra characters at the end of bundle identifier. In my case the app was not installing on some 8.1 devices. I don't know why this is needed but this worked for me. My best guess is it does some kind of cache burst.
Hope this helps someone.
来源:https://stackoverflow.com/questions/26536018/ios-8-1-enterprise-distribution