One of the major pain points in developing mobile applications for iOS devices (iPhone, iPod Touch and iPad) is testing those apps. As we've noted before, the traditional testing method is time-consuming and cumbersome - files have to be emailed or shared, then downloaded to a computer, dragged into iTunes and synced to the mobile device. When an update is required, the app in iTunes has to be deleted and the whole process must begin again.

But there's a better way, as it turns out, thanks to a change Apple made in iOS 4.0 but didn't publicize. Apps can be distributed via the "ad hoc" method for testing purposes, which means over-the-air, one-click installs for app beta testers. Here's how.

Although we're not a mobile application review site per se, we've done our fair share of app reviews around here. And one thing that we've always found to be problem in doing so is the tiresome, tedious method of getting pre-release apps onto our iPhones. Download, unzip, drag and drop, sync, test, etc.

That's why when mobile business card scanning solution CardMunch emailed us a link to install its latest pre-release version (now live) late last month, we were intrigued.

"If you would like to play with CardMunch 2.0 yourself, we made it easy for you to install this time since we already have your UDID. All you have to do is visit this link (no iTunes syncing required)," the email read, following by a link to a page on the CardMunch.com domain.

We clicked the link from within our iPhone's email client and the app just installed on our device - no iTunes syncing required. What? How is this possible?

Apple's Best Kept Secret

Apparently, a few developers have discovered the secret, documented in detail here. Now you may say that this isn't a secret at all, but a well-known feature most developers already know about. We say this in return: Oh yeah? Then someone please (please!) tell the developers who keep emailing us zip files about this.

OK, I guess we will.

Why Ad Hoc: More Testers, More Feedback

Thanks to this feature, developers can distribute mobile apps wirelessly for testing purposes. Developers will still need access to the device IDs (UDIDs) and will still need to create provisioning files, but the actual distribution of the apps makes it far, far easier on those receiving the applications for testing.

With easier distribution, more beta testers are likely to actually install and try your apps. That means more feedback for developers, says Alex Okafor, a mobile application developer who shared the details of the new method on his blog ParadeofRain.com. It also means that some of your testers will be out in the field when they install the apps, instead of at home using Wi-Fi, which can help you spot issues related to 3G bandwidth and its effect on the responsiveness of an app's functions.

How To Set Up Your Ad Hoc Distro

Thanks to Okafor's guide, we have the instructions for setting up an ad hoc distro. Here's how to do it:

  1. Choose Build --> Build and Archive
  2. If not already open, open the Organizer window (Window --> Organizer) and choose "Archived Applications"
  3. Highlight the build you just archived and click on "Share Application"
  4. Select "Distribute for Enterprise" and the correct provisioning profile should be automatically selected. If not, correct it.
  5. Now, fill out the form presented to you with the app URL, title, subtitle (optional) and image URLs (optional). 
  6. Click "OK" and specify where the file should be saved. Save the file as the same file name you gave it in the URL.
  7. Upload both the IPA and PLIST file to the URL you specified in the form.
  8. Drop the index.php file created by Jeffrey Sambells here in this post into the directory where you uploaded the IPA file. This index will generate the links for both the provisioning and IPA files.
  9. You're finished! Now, just share the link with your app testers!

Is this Legit?

So is this legit? It appears so. We spoke to another well-informed source on the matter who explained that this "Wireless App Distribution" method can now be done by either posting an XML file (a manifest file), using a PHP script or any other method. The idea is that the manifest will point to a single IPA file which itself can contain a provisioning file, they explained.

Developers registered under either the Standard or Enterprise program get 100 ad hoc invites, but Enterprise developers can distribute apps without linking to UDIDs. As far as this person knew, using an Enterprise developer license for distributing anything (beta or otherwise) to employees or contractors would be fine and not in violation of the Apple Developer Agreement. (Feel free to chime in if you know more.)

As we shared in October, a startup called TestFlight has developed a tool to further refine this process. It lets developers invite testers via email, and they can then see who has tested what builds of the app. The process of gathering and managing UDIDs is handled by the TestFlight service as well.

Have you tried ad hoc distribution for testing purposes? If so, what do you think about it?

Image credits: ParadeofRain