[ios] iOS8 Beta Ad-Hoc App Download (itms-services)

I have an ipa built using my Wildcard profile. I am hosting the ipa, and my testers are downloading it on our devices.

For iOS7+ devices it is working fine.

I have installed the iOS8 Beta on one of my devices. If I install my app from the app store it installs and works fine. If I try and install an ipa version I get an "Unable to Download App" error.

I am using this style of URL to download:

itms-services://?action=download-manifest&url=https://url-to-plist.plist

My plist looks like:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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://url-to-ipa.ipa</string>
                         </dict>
                         <dict>
                              <key>kind</key>
                              <string>full-size-image</string>
                              <key>needs-shine</key>
                              <true/>
                              <key>url</key>
                              <string>https://url-to-artwork/iTunesArtwork.png</string>
                         </dict>
                         <dict>
                              <key>kind</key>
                              <string>display-image</string>
                              <key>needs-shine</key>
                              <true/>
                              <key>url</key>
                              <string>https://url-to-icon/Icon.png</string>
                         </dict>
                    </array>
                    <key>metadata</key>
                    <dict>
                         <key>bundle-identifier</key>
                         <string>com.vistair.docunet-test</string>
                         <key>bundle-version</key>
                         <string>3.0.400</string>
                         <key>kind</key>
                         <string>software</string>
                         <key>subtitle</key>
                         <string>DocuNet</string>
                         <key>title</key>
                         <string>DocuNet</string>
                    </dict>
               </dict>
          </array>
     </dict>
</plist>

download/install progress gets about 2/3 of the way round and then I get the error.

The console information looks like this:

Sep 10 09:22:54 iOS8-iPad itunesstored[80] <Warning>: LaunchServices: installing placeholder for com.vistair.docunet-test
Sep 10 09:22:54 iOS8-iPad installd[36] <Notice>: 0x419000 -[MIClientConnection _doBackgroundInstallationForPath:withOptions:completion:]: Install of "/var/mobile/Library/Caches/com.apple.itunesstored/AppPlaceholders/3333725844373650644.app" type Placeholder requested by itunesstored (pid 80)
Sep 10 09:22:54 iOS8-iPad installd[36] <Notice>: 0x419000 -[MIInstaller performInstallationWithError:]: Installing <MIInstallableBundle ID=com.vistair.docunet-test; Version=3.0.400, ShortVersion=(null)>
Sep 10 09:22:54 iOS8-iPad installd[36] <Notice>: 0x419000 -[MIContainer makeContainerLiveReplacingContainer:withError:]: Made container live for com.vistair.docunet-test at /private/var/mobile/Containers/Data/Application/C2CAA7A9-84D0-4350-BEF7-71A3D761AEDD
Sep 10 09:22:54 iOS8-iPad installd[36] <Notice>: 0x419000 -[MIContainer makeContainerLiveReplacingContainer:withError:]: Made container live for com.vistair.docunet-test at /private/var/mobile/Containers/Bundle/Application/F2673AA9-0BAB-4A39-9F53-57431B0DE690
Sep 10 09:22:54 iOS8-iPad installd[36] <Notice>: 0x419000 -[MIInstaller performInstallationWithError:]: Staging: 0.02s; Waiting: 0.00s; Installation: 0.56s; Overall: 0.58s
Sep 10 09:22:55 iOS8-iPad itunesstored[80] <Warning>: LaunchServices: Creating installProgressForApplication:<LSApplicationProxy: 0x14fa8d50> com.vistair.docunet-test (Placeholder) withPhase:3
Sep 10 09:22:55 iOS8-iPad itunesstored[80] <Warning>: LaunchServices: installPhaseFinishedForProgress: com.vistair.docunet-test.InstallingPlaceholder - <NSProgress: 0x1607eac0> : Parent: 0x0 / Fraction completed: 0.0000 / Completed: 0 of 100   called, removing progress from cache
Sep 10 09:22:55 iOS8-iPad itunesstored[80] <Warning>: LaunchServices: Creating installProgressForApplication:<LSApplicationProxy: 0x14ec1430> com.vistair.docunet-test (Placeholder) withPhase:0
Sep 10 09:22:55 iOS8-iPad lsd[72] <Warning>: LaunchServices: Updating installPhase for parent <NSProgress: 0x1457c530> : Parent: 0x0 / Fraction completed: 0.0000 / Completed: 0 of 100   to 0
Sep 10 09:22:56 iOS8-iPad filecoordinationd[166] <Warning>: sandboxing denied subscription to progress on category com.vistair.docunet-test (bundle id (null), 8A7A24B0-E3C0-45CC-81B3-615E0D54A5FF)
Sep 10 09:22:56 iOS8-iPad filecoordinationd[166] <Warning>: sandboxing denied subscription to progress on category com.vistair.docunet-test (bundle id com.apple.iaptransportd, F245BFD6-E6FB-4F0E-8D6B-2E2C687064F1)

This question is related to ios ios8 ad-hoc-distribution

The answer is


Specify a 'display-image' and 'full-size-image' as described here: http://www.informit.com/articles/article.aspx?p=1829415&seqNum=16

iOS8 requires these images


If you have already installed app on your device, try to change bundle identifer on the web .plist (not app plist) with something else like "com.vistair.docunet-test2", after that refresh webpage and try to reinstall... It works for me


I was struggling with this, my app was installing but not complete (almost 60% I can say) in iOS8, but in iOS7.1 it was working as expected. The error message popped was:

"Cannot install at this time". 

Finally Zillan's link helped me to get apple documentation. So, check:

  1. make sure the internet reachability in your device as you will be in local network/ intranet.
  2. Also make sure the address ax.init.itunes.apple.com is not getting blocked by your firewall/proxy (Just type this address in safari, a blank page must load).

As soon as I changed the proxy it installed completely. Hope it will help someone.