Ad Hoc iOS .ipa file won't install for devices added to profile since iOS 7 came out
Asked Answered
L

6

17

I have an iOS app that I've developing for a while. Initially there were around 8 devices in the iOS dev account, ad builds were prepared and distributed through Hockey App, no problems. Recently, we've added a bunch more devices, but for some reason the ad hoc builds won't install on those devices (but continues to install just fine on the original set).

I have been over and over the certificates, devices and provisioning profiles in the iOS Dev Center. I've triple checked all the Build Settings in XCode. The app is for iOS 6 and iOS 7 only. It is built in XCode 5. I've tried installing the app through HockeyApp and direct through iTunes.

When attempting to install the app on a device, this is the output from the console:

Sep 24 21:45:02 Micks-iPad itunesstored[88] : LaunchServices: updating placeholder for com.purifier.ios with icons
Sep 24 21:45:02 Micks-iPad installd[62] : 0x304000 handle_install_for_ls: Install of "/var/mobile/Library/Caches/com.apple.itunesstored/AppPlaceholders/3119681654421541181.app" requested by itunesstored
Sep 24 21:45:02 Micks-iPad installd[62] : 0x304000 MobileInstallationInstall_Server: Installing app com.purifier.ios
Sep 24 21:45:02 Micks-iPad installd[62] : 0x304000 install_application: Installing placeholder
Sep 24 21:45:03 Micks-iPad installd[62] : 0x304000 MobileInstallationInstall_Server: Staging: 0.01s; Waiting: 0.00s; Installation: 0.14s; LS Sync: 0.00s; Overall: 0.15s
Sep 24 21:45:06 Micks-iPad itunesstored[88] : LaunchServices: Creating installProgressForApplication:LSApplicationProxy: com.purifier.ios (Placeholder) withPhase:0
Sep 24 21:45:06 Micks-iPad lsd[74] : LaunchServices: Updating installState for parent  to LSInstallStateWaiting
Sep 24 21:45:06 Micks-iPad lsd[74] : LaunchServices: Updating installPhase for parent  to 0
Sep 24 21:45:19 Micks-iPad SpringBoard[33] : Killing com.purifier.ios for app installation
Sep 24 21:45:19 Micks-iPad itunesstored[88] : LaunchServices: installing app for existing placeholder LSApplicationProxy: com.purifier.ios (Placeholder)
Sep 24 21:45:19 Micks-iPad itunesstored[88] : LaunchServices: Creating installProgressForApplication:LSApplicationProxy: com.purifier.ios (Placeholder) withPhase:1
Sep 24 21:45:19 Micks-iPad lsd[74] : LaunchServices: Updating installPhase for parent  to 1
Sep 24 21:45:19 Micks-iPad installd[62] : 0x304000 handle_install_for_ls: Install of "/var/mobile/Media/Downloads/3119681654421541181/-915963357124799252" requested by itunesstored
Sep 24 21:45:20 Micks-iPad installd[62] : 0x304000 MobileInstallationInstall_Server: Installing app com.purifier.ios
Sep 24 21:45:20 Micks-iPad installd[62] : profile not valid: 0xe8008012
Sep 24 21:45:20 Micks-iPad installd[62] : 0x304000 install_embedded_profile: Could not install embedded profile: 0xe8008012
Sep 24 21:45:21 Micks-iPad securityd[77] : OCSPResponse: now > latestNextUpdate
Sep 24 21:45:22 Micks-iPad installd[62] : 0x304000 verify_signer_identity: MISValidateSignatureAndCopyInfo failed for /var/tmp/install_staging.AFwPty/foo_extracted/Payload/Purifier.app/Purifier: 0xe8008015
Sep 24 21:45:22 Micks-iPad installd[62] : 0x304000 do_preflight_verification: Could not verify executable at /var/tmp/install_staging.AFwPty/foo_extracted/Payload/Purifier.app
Sep 24 21:45:22 Micks-iPad installd[62] : 0x304000 install_application: Could not preflight application install
Sep 24 21:45:22 Micks-iPad itunesstored[88] : 0x441000 MobileInstallationInstallForLaunchServices: failed with -1
Sep 24 21:45:22 Micks-iPad itunesstored[88] : ERROR: MobileInstallationInstallForLaunchServices returned nil
Sep 24 21:45:22 Micks-iPad lsd[74] : LaunchServices: installation failed for app com.purifier.ios
Sep 24 21:45:22 Micks-iPad itunesstored[88] : LaunchServices: installPhaseFinishedForProgress: com.purifier.ios.Installing -  called, removing progress from cache
Sep 24 21:45:22 Micks-iPad installd[62] : 0x304000 handle_install_for_ls: API failed
Sep 24 21:45:31 Micks-iPad SpringBoard[33] : Killing com.purifier.ios for app installation

I've tried absolutely everything I can think of. Any help, even ideas about how to diagnose the problem, would be greatly appreciated.

Loudmouthed answered 24/9, 2013 at 11:47 Comment(1)
related: #18981283Sinistrodextral
E
13

Here's the source of your problem:

Sep 24 21:45:20 Micks-iPad installd[62] : profile not valid: 0xe8008012

0xE8008012 is "The UUID of the device does not match any in the Provisioning Profile being loaded"

Check and double-check the UUIDs associated with the profile in the Provisioning Portal and make sure you're using the correct and current profile to sign the app. Also check you only have the current developer certs in your keychain. Remove any previous certs.

Enochenol answered 24/9, 2013 at 12:9 Comment(4)
This is the problem. Certs and profiles were fine, but the UDID for the device was wrong. I'm using the UDID app to get the UDID (rather than iTunes) but this is no longer giving the correct UDID in iOS7.Loudmouthed
You can also check in .ipa how many UDID is Added to Provising Profile You can see my Blog and follow the step to check buildipaudid.blogspot.inStempien
@hardikbar The embedded.mobileprovision file is encrypted now. So unfortunately your solution won't let you see the profiles associated with the IPA.Renter
@Renter my solution is for check How many UDID is Added in your profile You can cross verify before instaling on device or send it to client for testing purpose .. sometime we send Client for testing and udid is not added or updated in profile or we didn't refresh certificate so this purpose you can check from your .ipa file how many device id is added.... if you have any queries related to this feel free to ask i am available 24*7Stempien
L
22

The problem was that the UDID was wrong (thanks @neilco). The reason the UDID was wrong was because the UDID app I'm using is giving the wrong UDID as of iOS7.

I checked a bunch of other UDID apps and they're all giving the wrong UDID in iOS7. It seems that anything that starts with a bunch of FFFFFFFF... is wrong.

Back to bloody iTunes...

Loudmouthed answered 24/9, 2013 at 12:26 Comment(4)
I spent a couple days off-n-on working out why one of our staffs new iPhone 5S would not ever load our apps. They are all provisioned ad-hoc, and we use hockyapp too. I never caught the UDID being a problem, until I tried another new iOS7 device, and helper apps gave a fake UDID with FFFFFFF in the beginning. this is a fairly big problem and forces us to run through apple approval to get in App Store. (thats ok, just not ready to do that) What if a user is remote, and does not have iTunes on a 3G ipad? I get they are out of luck!Divisionism
emonster UDID+ gave me the FFFFFF UDID too, this has been driving me crazy!Zared
Apple have essentially 'disallowed' UDID apps in iOS7 - see https://mcmap.net/q/743149/-ios-7-adhoc-build-installation-hangs-with-installing-messageSmog
I create an adhoc ipa. This works fine on iphone when I install it by itunes. But i can not install it directly. What's could be my problem ?Intertidal
E
13

Here's the source of your problem:

Sep 24 21:45:20 Micks-iPad installd[62] : profile not valid: 0xe8008012

0xE8008012 is "The UUID of the device does not match any in the Provisioning Profile being loaded"

Check and double-check the UUIDs associated with the profile in the Provisioning Portal and make sure you're using the correct and current profile to sign the app. Also check you only have the current developer certs in your keychain. Remove any previous certs.

Enochenol answered 24/9, 2013 at 12:9 Comment(4)
This is the problem. Certs and profiles were fine, but the UDID for the device was wrong. I'm using the UDID app to get the UDID (rather than iTunes) but this is no longer giving the correct UDID in iOS7.Loudmouthed
You can also check in .ipa how many UDID is Added to Provising Profile You can see my Blog and follow the step to check buildipaudid.blogspot.inStempien
@hardikbar The embedded.mobileprovision file is encrypted now. So unfortunately your solution won't let you see the profiles associated with the IPA.Renter
@Renter my solution is for check How many UDID is Added in your profile You can cross verify before instaling on device or send it to client for testing purpose .. sometime we send Client for testing and udid is not added or updated in profile or we didn't refresh certificate so this purpose you can check from your .ipa file how many device id is added.... if you have any queries related to this feel free to ask i am available 24*7Stempien
U
8

Ensure you re-download the provisioning profile after adding the new devices to it.

You need to edit the profile and tick the new devices in the list. Then re-dwonload it.

Unpeopled answered 24/9, 2013 at 12:14 Comment(6)
This is good advice. I'm in the process of updating one of my testers' UDIDs because it won't load (because of the ffffff thing) and wouldn't have thought to do this. Thanks for saving me some troubleshooting time!Upsydaisy
No problems. let me know if you have any difficulties ?Unpeopled
This was the exact problem in my case. I was just assuming xCode was clever enough to fetch the updated Provisioning Profile for me. I had to manually download the provisioning profile from Member Center and double click to install updated one.Trumpery
Yeah assuming Xcode is clever is always my downfall. Glad you got it sorted. :-)Unpeopled
Ensure you re-download the provisioning profile after adding the new devices to it... You can also check in .ipa how many UDID is Added to Provising Profile You can see my Blog and follow the step to check buildipaudid.blogspot.inStempien
CW0007007 & @Trumpery It's not about Xcode being clever or not, it's a security concern. The manual process is on purpose so malware can't be installed on your device without the author knowing a lot about your particular device before distribution.Believe
P
2

xcode open organizer -> Select devices -> in left pane select provisioning profile from the top delete your current provisioning profile. Download updated provisioning profile from your developer account and now try to build your .ipa for new devices.

Don't forget to update provisioning in devices.

Proviso answered 24/9, 2013 at 12:22 Comment(0)
M
2

Please note that Apple has changed the UDID retrieval API due to privacy concerns. So, I don't think you may use some of those older apps to get the UDID. You can connect your device to your PC/Mac and get the UDID using iTunes (or XCODE). In iTunes, click on the Serial Number and it will change to UDID (once the phone is connected to the computer and you click the device in iTunes)

Melainemelamed answered 22/10, 2013 at 17:3 Comment(0)
J
0

Swift 4 if you need to install it as development for testing Please Edit the Provisioning Profile or if you have no Provisioning Profile for this app then the unable to install in the device so please then create new Provisioning Profile and select all the devices and then rebuild IPA and install it simple

Joellajoelle answered 9/3, 2018 at 9:56 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.