So debugging why an Ad Hoc build is not working on your client’s device is not easy. As you already know there are ton of files that need to be just right for the process to be successful. On top of that if you are passing the Ad Hoc .app files back and forth using something like DropBox there other errors you can see like: The application “myApp” was not installed on the ipod “device name” because its resources have been modified.
I’m not going to go into everything here, I’m just going to tell you the steps I took, show you my settings and point you to some resources.
Check the obvious
You must be able to build your app to your device first.
Go to the iPhone Provisioning Portal > Provisioning > Distribution Tab and make sure that all your UDID for your devices are in that Provisioning Profile. Download and install that .mobileprovision file by double clicking on it. . You will also give this .mobileprovision to your Ad Hoc testers.
Get the Ad Hoc Xcode Target Build Setting right
In Xcode double click on your target and check it against these screenshots. Since this is an AD Hoc build you want to make sure you select iPhone Distribution . You also want to make sure you have setup your Signing Entitlements properly ( Check the first link in the resources ) only for the Ad Hoc Configuration.
Important: If you set the Entitlements entry for Ad Hoc configuration make sure it is unset for Debug and/or Release configurations. Otherwise you will see:
Error launching remote program: failed to get the task for process
After some trial and error I found using the Automatic Profile Selector (Recommended) -> iPhone Distribution under the Code Signing -> Code Signing Identity worked the best.
Testing your Ad Hoc Build
If you are doing an Ad Hoc build don’t bother doing a ‘Build & Run’ from Xcode. Ad Hoc builds are meant to be sent to a tester so what you want to do is a ‘Build’ and go to you build dir inside of your Xcode project, take the .app file from inside the ‘Ad Hoc-iphoneos’ folder and follow the instruction from the link below: Apple - iPhone Development Guide - Publishing Applications for Testing – Instructions for Application Testers.
- Ad Hoc distribution of an iPhone application: http://bluxte.net/musings/2009/05/17/ad-hoc-distribution-iphone-application
- Apple – iPhone Development Guide - Configuring Applications: http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/115-Configuring_Applications/configuring_applications.html
- Apple - iPhone Development Guide - Publishing Applications for Testing: http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/145-Publishing_Applications_for_Testing/user_testing.html
What to give to your client
Apple - iPhone Development Guide - Publishing Applications for Testing – Instructions for Application Testers: http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/145-Publishing_Applications_for_Testing/user_testing.html#//apple_ref/doc/uid/TP40007959-CH10-SW9