Wireless Ad Hoc Distribution for iPhone Apps

Published on December 17, 2010

This post is for iPhone developers who need to send pre-released apps to (beta) testers.

For a long time since iOS development began, whenever developers need to send a pre-released app, testers need to go through a tedious process to install – they have to download, drag app to iTunes on a PC/Mac (NOT iPhone), and sync over USB..

Now with iOS 4, wireless installation is possible, right from an iPhone!

This new process is much more convenient, or as convenient as installing from App Store. The result is that testers will be more glad to install and test your pre-released apps.

Jeffrey Sambells has a good post on how to create a little webpage that has links for testers to install the app. He even has a PHP script to conveniently skip some of the steps.

The post is helpful, but for myself, all I need is to a link that I can email to my testers. A link which they can simply click on and install the app wirelessly.

I am going to explain how I do it my way.

 

Step 1 – Build and Archive

In Xcode, Build and Archive your Ad Hoc target.

Under Organizer window, select the archive app and select Share > Distribute for Enterprise. You will see this (screenshot from paradeofrain):

For the URL field, enter a temporary URL first (we will change that in step 2). This URL is the link to the IPA file which you will upload.

Press OK. You will now have the IPA file (the app) and a PLIST file (an XML that describes the app and where the IPA is).

 

Step 2 – Upload to Dropbox

Firstly, upload the IPA file to your dropbox. I prefer dropbox, but you may use a web server if you like. After the file is uploaded, get the dropbox public link for the IPA file. eg. http://dl.dropbox.com/u/1234/MyApp.ipa

Next, open the PLIST file and edit the url element. For example,

...
<key>url</key>
<string>http://dl.dropbox.com/u/1234/MyApp.ipa<string>
...

Upload the edited PLIST file to dropbox. Similarly, get the dropbox public link to the PLIST file. eg. http://dl.dropbox.com/u/1234/MyApp.plist

 

The secret to installing is this URI:

itms-services://?action=download-manifest&url=http://dl.dropbox.com/u/1234/MyApp.plist  

Created a HTML email with a hyperlink pointing to the above URI. For example:

<a href=”itms-services://?action=download-manifest&url=http://dl.dropbox.com/u/1234/MyApp.plist>Download App</a>

When a tester click on Download App from his iPhone, the installation will begin!

That’s it!