iOS Ad Hoc installation failing

2019-06-20 02:03发布

问题:

I'm getting the following error when I try to install an app via TestFlightApp.com.

"Unable to download application. "helloworld" could not be installed at this time.

I've also tried installing via iTunes and the Apple Configurator.

When I first got this error, I thought it might be due to Apple's developer program being down a few weeks back, so I regenerated all my certificates using the code signing request on my laptop, then rebuilt all my provisioning profiles.

I then deleted all the profiles from my iPhone, and from XCode, and I deleted TestFlight from my phone.

Then I archived the app, uploaded to test flight, gave permission to all the devices in the profile, and sent the notification emails with the download link.

When I try to download, the progress bar gets nearly all the way to the end then the error pops up. This is what I see in the Console during installation (from the iPhone Configuration Utility):

SpringBoard[67] <Warning>: Killing com.helloworldapp for app installation
installd[53] <Error>: 0x2c6000 handle_install: Install 
    of "/var/mobile/Media/Downloads/-2429066128781955904/-410631401396950200" 
    requested by itunesstored
installd[53] <Error>: 0x2c6000 MobileInstallationInstall_Server: Installing 
    app com.helloworldapp
installd[53] <Error>: Aug 23 11:45:37  SecTrustEvaluate  
    [leaf CriticalExtensions IssuerCommonName]
installd[53] <Error>: 0x2c6000 verify_signer_identity: 
    MISValidateSignatureAndCopyInfo failed for
    /var/tmp/install_staging.a1ku9y/foo_extracted/Payload/helloworld.app/helloworld: 0xe8008017
installd[53] <Error>: 0x2c6000 do_preflight_verification: Could not verify 
    executable at /var/tmp/install_staging.a1ku9y/foo_extracted/Payload/helloworld.app
installd[53] <Error>: 0x2c6000 install_application: Could not preflight 
    application install
itunesstored[71] <Error>: 0x183b000 MobileInstallationInstall: failed with -1
installd[53] <Error>: 0x2c6000 handle_install: API failed

So I've got brand new certificates and profiles, the profile has the devices I'm trying to install embedded and I've given permission to those devices in TestFlight.

I'm at a loss now, I've fixed similar problems to this in the past, so I've run out of all my usual ideas.

And I've tried increasing the version number as well, (that's worked in the past) but no luck.

I recently moved the project from my /Users/ folder to an external hard drive, but I've updated all the necessary paths and I can build the app and run it via Xcode so I can't see how that's the problem.

UPDATE: Thanks to Jason's answer I've managed to get a different error from the Apple Configurator

A signed resource has been added, modified or deleted
-402620393
com.apple.mdk.amderror

UPDATE: For completeness, here's the error I get on the iPhone when trying to sync via iTunes:

iTunes Sync: 'helloworld' failed to install

回答1:

I work at TestFlight. On upload we try to catch every scenario we can to prevent this, but some cases aren't catchable or we haven't seen before. And the iPhone's error message "Unable to download application" doesn't give you much information.

The best thing to do in this case is to take your IPA (the same one you upload to TestFlight) and install it manually onto the device. This is pretty easy if you use Apple's Configurator. If Apple's Configurator can't install it, the issue is not caused by TestFlight and hopefully the Configurator will give you better error messages that will help solve the issue. If it can install it, then it is probably a TestFlight issue and you should send us a support request here.

Either way, let me know what happens. Hopefully, we can put another upload check to prevent this case the next time.



回答2:

The problem was my external hard drive, I'm 100% certain of this because I copied the project folder back onto my SSD, built and compiled with the same certificates and now it's gone through test flight.

It's a cheap USB hard drive I bought as my Macbook drive is full and I haven't saved up enough for a new one yet. I would recommend not building on an external HDD

I'm not 100% sure but I'm guessing my code signing certificates were only valid for the HDD that the project was originally created on, moving it to the HDD may have been like moving the folder to a different computer altogether, invalidating the code signing.

If anyone else could confirm or reinforce my theory that'd be great, but certainly moving the project back to the built in HDD of my laptop, the project's original location, resolved the problem for me immediately.



回答3:

Then I archived the app, uploaded to test flight, gave permission to all the devices in the profile, and sent the notification emails with the download link.

You must add the devices to the profile before you build and archive the app. The list of approved devices is bundled in the app, not checked online at install time.