When I try to install an app on iOS 9.0 by tapping an itms-services:// URL in Safari, nothing happens. This appears in the iOS device console:
itunesstored[586] <Warning>: ExternalDownloadManifest: Skipping download and install of: XXXXXXX
This also happens if your device has an App Store version of your app installed, and you try to install an in-house version with the same Bundle ID.
When you do this, the device will simply ignore you tapping on your "Install" button to kick off the OTA install, and silently log that annoying message.
ExternalDownloadManifest: Skipping download and install of: XXXXXXX
Nothing gets displayed on the device, you're left to work out what's gone wrong for yourself.
So the obvious solution is to uninstall your App Store version of your app before attempting to install your in-house version.
Seriously, every year, I waste countless hours creating and deploying OTA apps with Xcode, and the Xcode/iOS error-reporting is non-existant.
It's really Apple at it's very worst.
Elaborating on Mike Gledhill's answer:
I had this problem upgrading from a production build to a newer Ad Hoc build from HockeyApp with the same Bundle ID. This was a security change added to iOS 8.4 and above to prevent the "Masque" attack.
Manifest Masque Attack leverages the CVE-2015-3722/3725 vulnerability to demolish an existing app on iOS when a victim installs an in-house iOS app wirelessly using enterprise provisioning from a website. The demolished app (the attack target) can be either a regular app downloaded from official App Store or even an important system app, such as Apple Watch, Apple Pay, App Store, Safari, Settings, etc. This vulnerability affects all iOS 7.x and iOS 8.x versions prior to iOS 8.4. We first notified Apple of this vulnerability in August 2014.
Source
Official solution from Apple:
You should use TestFlight to test upgrades to your App Store app rather than enterprise distribution.
rdar://22088607
This happens when the version you're installing has a different bundle ID than a version already installed on the device.
Seeing this recently with TestFairy builds when trying to install them on top of an already installed build from the App Store (Xcode 7, iOS 9)
TestFlight builds do upgrade properly however (not surprised).
See also Enterprise App Update Distribution on iOS 8
Related
My testers have problem with an app I had uploaded to Fabric Beta. During normal testing they uninstall already installed app from their devices and they download new version from Fabric. In that case everything works fine. App will download and launch properly.
Problems begins when they want to test situation when future app's users update my app from AppStore. My testers want to check if updated app will not crash.
Test case is easy:
List item
Download app from AppStore.
Launch it.
Download new version from Fabric (new version should override old)
Launch it.
App should not crash.
Problem appears in (4), Fabric shows error "download problem detected". (Note that everything works if there is no old app on device.).
Fabric has problems with overriding apps?
Fabric (1.7.7)
iOS 11
iPhone 6s Plus
PS. This test is important. Crash will appears when I change database model without migration for example.
Paul from Fabric here. Did you uninstall the App Store version of your app first? Since iOS 9, Apple changed its policy to prevent apps from being installed over the existing App Store version by 3rd parties, so you need to delete the original app before installing the Beta version. For more information, see our docs here: https://docs.fabric.io/apple/beta/tester-experience.html.
And the other reason could be if any other app is installing or updating parallelly, Fabric will not be able to install. Just faced the issue :)
My company has an app that can be downloaded through a website using Enterprise Distribution.
In iOS 9, tapping the download link brings up the expected pop-up "(website) would like to install (App Name)". Tapping 'install' on that dialog first causes the app to get stuck "Waiting..."
App stuck waiting
Until it finally indicates: "Unable to Download App (app name) could not be downloaded at this time."
Unable to Download the App
Installing works as expected using iOS 7 and iOS 8.
How do we support Enterprise Distribution in iOS 9?
Apple has silently changed how Enterprise Distribution works several times, so knowing the answer to this question will not actually benefit you in the long run. How to find the answer to your question the next time will benefit you most.
Connect your device with the shiny new iOS version to your Mac running Xcode, and open the Devices organizer. Select the device, and optionally clear the log. Now open your app distribution page and try to install the app (clear any previous versions of the app off the device first), and keep an eye on the log output. Here you will find hints as to what you need to change.
For iOS 9.1, I saw the error: BundleValidator: Failed bundleIdentifier: com.example.appName.XXXX does not match expected bundleIdentifier: com.example.appName, which means that the bundle-identifier in the project plist file did not match the Bundle Identifier from the project. I remember adding .XXXX to the bundle identifier in the plist file last time I had to fix Enterprise Distribution, for iOS 8.0, i think. Fixing this was easy, just remove the offending .XXXX -- but then it dosen't work for iOS < 9.0
For the time being, I maintain two plist files for distributing the same ipa file, one for iOS 8.+, and another for iOS 9.+
I am making an app made using IONIC which I just want to test on my IOS device, not publish it to the app store.
Do I still need an Apple developer account ( by paying $99 ) or is MAC with XCODE and IONIC installed enough?
I just want to test it on my device, not publish it to the app store.
Yes it is possible.
I tried this today. Using XCODE 7 beta 2. Tested my project made using IONIC with only APPLIE ID, NOT APPLE DEVELOPER ACCOUNT, and its working.
All you have to do is( for making IONIC projects and installing them on Physical devices without APPLE DEVELOPER ID)
Install XCODE version 7 (currently beta 2)
Install Node JS (update path)
Install Cordova
make an ionic project ( IONIC start yourproject blank)
IOS platform is added by default.
go to platforms/ios folder
there will be a yourproject.xcode file - open it
Connect your device to the MAC
Run your project - if you get any error, XCODE gives the option of fix issue, click on that and your app will be installed on the physical device
Yes, I can confirm this, as I had to do it myself too. You have to buy an Apple developer license in order to test the app on your phone. I know this sounds crazy as you're not actually putting it to the store, just 'testing', but hey that's Apple ;).
However, if you would only like to run it in an Xcode emulator, you don't have to.
edit: Here is the official document confirming this: https://developer.apple.com/legacy/library/technotes/tn2250/_index.html#//apple_ref/doc/uid/DTS40009933-CH1-CODE_SIGNING_IN_A_NUTSHELL-IPHONE_CERTIFICATES
And besides, here's a SO question asking a similar thing and the reply is the same.
I am beta testing my app, and a few users are getting the error "Unable to Download Application. "Okasio" could not be downloaded at this time". So far 30 users have downloaded the beta of the app, and only 2 are getting the error, so it seems user- rather than app-specific. Does anyone have a suggestion?
The message is identical to the one from this post, but with current iOS 8 formatting:
TestFlight fails to install app and cannot delete partially installed app
The most likely reason is that their iOS OS version is below the app's minimum OS version.
As strange as it might sound the official Apple TestFlight/iTunes Connect beta system does not test the OS version at all at the moment. We faced this issue while we were working on our integration with the new TestFlight system (Bitrise.io, iOS CI/CD service - CTO here).
For example one of our test apps was built with iOS 8.2 as the minimum OS version. It's even listed on the app's card in TestFlight (Compatibility: Requires iOS 8.2 or later) but you can still click on the install button and it starts to download&install it. Then of course you get the helpful error message with Unable to Download App.
Note: Tested on two different iPads, both with iOS 8.1.3.
Another, less likely issue might be the lack of storage on the device but as far as I remember that presents a different error message.
I have hosted my IOS App on company's server using Apple's enterprise development profile.
I was successfully able to download the App on my iPhone but not on my iPad.
It asks for Install nothing happens.
What am I missing?
Thanks.
The problem is with the iOS 8 loader for Enterprise installs. Unfortunately, the only way to circumvent this issue is to dynamically rename the bundle identifier in the plist for each request.
This will effectively install two instances of the application on your device but the legacy version will be deleted once installation has complete.
See the following link for further details:
iOS 8 Enterprise Apps issue
The following link will also provide more details on how to implement such solutions:
Enterprise catalog
Check for iOS version of Deployment Target in Xcode, maybe it's newer than the version on the iPad.