Distribution iOS Enterprise OTA Unable to download application

I created an iOS application and want to distribute it on air. I followed this guide:

http://help.apple.com/iosdeployment-apps/mac/1.1/?lang=en-us#app43ad77ea

The application is signed with an enterprise certificate and contains a distribution provision profile.

When I try to download the application on the ipad (using the technique described in this manual), a square icon appears on the screen with my download icon named "Waiting ...", then after a second the name changes my actual application name, and then again after a second I get an error message:

Unable to download application

"Your application" could not be downloaded at this time.

In the manual, there are three troubleshooting tips:

If the wireless app’s distribution fails with β€œUnable to Download,” check the following:

Make sure the application is signed correctly. Test it by installing it on your devices using the iPhone or Apple Configurator Configuration Utility and check for errors.

Make sure the link to the manifest file is correct and that the manifest file is accessible to web users.

Verify that the .ipa file URL (in the manifest file) is correct and that the .ipa file is accessible to web users.

I checked all three things and they are fine.

What else could cause download problems?

+31
ios enterprise
Oct 31
source share
12 answers

As Alexei said, too many reasons can trigger this message. Apple uses it as a "catch all the bugs."

You can diagnose it through the console . Connect the device to your desktop and access it either from Xcode Organizer (Mac only) or iPhone Configuration> (Mac and Windows). But...

It's just not that simple !: - (

The console may not be enough. Sometimes there is no corresponding message.

Then the last resort follows the checklist . We do everything from scratch again. There are many out there ... But after that, my general and not detailed checklist for air distribution at the moment.







  • Create a layout . This is the most difficult part, always performed on the Internet, and Apple changes all stages all the time. In general, you need a certificate, identifier, and provisioning profile. Listing devices are almost always required. My current selection is " Distribution β†’ In House ."

    Apple Developer -> Member Center -> Certificates, Identifiers & Profiles -> Provisioning Profiles -> Add (+)

    PS: If you want to list devices, make sure the UDIDs are correct. There are a lot of posts.

  • Set the profile under Project β†’ Build Settings . - With Xcode 5, everything has changed. Instead of signing the code with an identifier, you can clear all of this and install it in the section * Signing the code β†’ * Preparation profile . The identifier will automatically change to "Automatic." There is also no need to manually download files from step 1 and install them. Xcode now controls this.

    Xcode 5 -> Project Navigator -> Project -> Build Settings

  • Archive . In Xcode 5, there is no longer a need to create a "Build for Archive". Just archive it. It should appear on the Organizer , and it will take some time if this is a large project. Many errors may occur at this point, but they are almost always related to code compilation, not OTA.

  • Deploy Now in Organizer β†’ Archives, select the desired archive (it should already be selected as the last one), click "Distribute", then Save for Enterprise or Ad Hoc Deployment . Maybe now big. When saving a file, there is the option "Save for enterprise distribution". This is a completely misleading name. In fact, this creates a plist file. If you already have it, everything is in order. You can even manually edit it, which is usually better. For step (5), a plist is required. Here's a good one:

    <?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>http://example.com/app.ipa</string> </dict> <dict> <key>kind</key> <string>full-size-image</string> <key>needs-shine</key> <false/> <key>url</key> <string>http://example.com/FullSizeImage.png</string> </dict> <dict> <key>kind</key> <string>display-image</string> <key>needs-shine</key> <false/> <key>url</key> <string>http://example.com/Icon.png</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.example.app</string> <key>kind</key> <string>software</string> <key>subtitle</key> <string>for iOS</string> <key>title</key> <string>My App</string> </dict> </dict> </array> </dict> </plist> 
  • Distribute . Skip this step if you want to install it using the Xcode or iPhone configuration utility. Everything is ready. This is the placement of a file on a website . Just add an HTML page with a href link, for example:

      itms-services://?action=download-manifest&url=http://example.com/app.plist 

    Unfortunately, working with web servers is never easy. So check the mime server type ! I made a couple of PHP files to handle them if your server supports php. Just save the files as they are (plist, html and ipa) and a link to app.plist.php instead:

    app.plist.php

     $file = fopen("app.plist", "r"); while(!feof($file)){ $line = fgets($file); print str_replace(".ipa", ".ipa.php", $line); } fclose($file); ?> 

    app.ipa.php

     <?php header('Content-type: application/octet-stream'); $file = fopen("app.ipa", "r"); while(!feof($file)){ $line = fgets($file); print $line; } fclose($file); ?> 
  • Check out . Ensure that all files listed in the asset array are available for download. If any of these files returns 404 or such (including icons), the entire installation will fail. You must either (A) make these files available, or (B) remove those missing entries from the plist. Icons are not required for download.

    Here is a no-icon plist example:

     <?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>http://example.com/app.ipa</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.example.app</string> <key>kind</key> <string>software</string> <key>subtitle</key> <string>for iOS</string> <key>title</key> <string>My App</string> </dict> </dict> </array> </dict> </plist> 

Sample files are a very important part of the checklist. They must be 100% correct.

Double check plist and html files!

PS: I am writing this answer because in my case it was a "simple" question of incorrect link to the .plist file. And, as such, it’s difficult, like hell, to diagnose. Well, only in this checklist can I find an error! He pointed to "another-app.ipa", not to "app.ipa"!

+33
Oct 29 '13 at 14:39
source share

There are many reasons to trigger this message.

The best way to diagnose this is to connect the device to the Mac and see the Console for the device in the Organizer .

In my case, for example, it was:

verify_bundle_metadata: This application was not created to support this device family.

+12
Jun 20 '13 at 8:38
source share

Answering my own question:

The problem was that one of the thumbnails did not have the correct path set in manifest.plist - therefore, not only ipa needed the right path, but also temporary boot icons, otherwise the installation would fail with the indicated error message.

+7
Nov 01 '12 at 18:17
source share

Another problem that may be is that both .plist and .ipa should be hosted with HTTPS, not just plain HTTP. The line of the software package should look like this:

 <key>kind</key> <string>software-package</string> <key>url</key> <string>https://example.com/app.ipa</string> 

Stupid little supervision, but he turned me off several times.

+6
Dec 23 '14 at 17:28
source share

We encountered the same error message when trying to install the iOS 5+ application on iOS4.3.5. Have you also checked deployment / build goals and target architecture against devices, showing this problem?

+3
Nov 01 '12 at 9:53
source share

Make sure the enclosure matches all files. They are usually case insensitive.

+1
Dec 19 '13 at 2:21
source share

In my case, the problem was on my device, the old version of the same application was installed with the same package identifier (downloaded from applstore), so now, when I tried to download my new version through the corporate distribution, I did nothing, without errors at all . Removing an existing version from the device solved my problem.

+1
10 Oct. '16 at 13:11
source share

I found in the console.

set coordination (MobileInstallation) [99]: **** bundleID ****: 5: 11: 1: 1: Label update for **** bundleID **** with error 1 _LSInstallType 1, main error ( Domain Error = MIInstallerErrorDomain Code = 13 "Failed to verify code signature /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.IoCSM9/extracted/Payload/App.app: 0xe8008016 (Executable was signed with invalid permissions.) "UserInfo = {LibMISErrorNumber = -402620394, LegacyErrorString = ApplicationVerificationFailed, SourceFileLine = 147, FunctionName = + [MICodeSigningVerifier _validateSignatureAndCopyInfoForURL: withOptions = privateized error_disable]] /Library/Caches/com.apple.mobile.installd.staging/temp.IoCSM9/extracted/Payl oad / App.app: 0xe8008016 (the executable was signed with invalid permissions.)}), source 17>

Here we have to look at:
Failed to verify App.app code signature
The executable file was signed with invalid permissions.

In my case, it was because I downloaded the enterprise build from Amazon. But the security profile with which it was created is expired (found in the developer console ).




Another for a different purpose:

"This application cannot be installed at this time." UserInfo = {NSLocalizedDescription = This application cannot be installed this time., NSUnderlyingError = 0x100cbd3c0 {Error Domain = MIInstallerErrorDomain Code = 64 "Updates the application identifier access bar (BBBUUUUU.bundle.www) does not match the set identifier string application (CCCEEEE.com.bundle.www); refusal to update. "UserInfo = {LegacyErrorString = MismatchedApplicationIdentifierEntitlement, FunctionName = - [MIInstallableBundle _validateApplicationIdentifierForNewBundleSigningInfo: error:], SourceFileLineUpdateUserUpdatesUnumeratorDesernameUnumerated = 878 com.bundle.www) does not match the set string and entifikatora application (CCCEEEE.com.bundle.www); rejected

Here I just uninstalled the previous version of the application. The error was that I changed the command for the package identifier, and the application with the previous package identifier was installed.




Open a console with:

  • Xcode > Window > Devices
  • Select device
  • Expand the console using the box with the arrow inside it in the lower left corner.
+1
Mar 28 '18 at 9:32
source share

Try checking bundle identifier in .plist and .plist

0
Sep 27 '16 at 12:01
source share

In my case, I did the following to get rid of the message "cannot connect to dl.dropboxusercontent" after providing a shared ipa link. 1. Removed the md5 part from plist 2. Downloaded 512 * 512 and 57 * 57 images to remove the window, and provided a general link in fill_size_image and display_image in plist.

0
Mar 03 '17 at 18:24
source share

The first thing to check is that the device you are installing has the correct OS for the application you are installing. For example, if the application was created for iOS 11, and iOS 10 is installed on your device, the application will be installed, but you will see this error "Unable to download the application."

0
Feb 13 '18 at 23:41
source share

In my case, there was a problem with incorrect access rights to the FTP folder and files inside (manifest, ipa, images). Make sure they have 775 (rwx) and that the owner / group is your owner.

The error in the device’s console looked like β€œ Unable to connect to the iTunes Store ” or β€œ Failed to get cover art for bundleID ” or β€œ Failed to load cover art for bundleID ”, but this is only about files.

0
Dec 29 '18 at 12:43
source share



All Articles