When you develop your DPS app (or any iOS app) you then, near the end, need to test the app on your device and also send it to your clients for them to test.
The most obvious way for distributing was always sending the .ipa file via email to your client, let them drag it into iTunes and sync their iPads with iTunes. This is a tedious process, for you and for the client.
But you can also distribute your development app »Over the Air« and install right from the iPad browser. This is available for Pro and Enterprise, even Single Edition.
Note: This will not bypass the App Store for final distribution. This is only for testing your development app and you still need the UDIDs of all the iPads you want to test on (Enterprise customers can sign an app without the UDID binding).
In short: You create a xml manifest.plist file and upload it with your ipad file and one icon to your own server. You then create a special link that points to the manifest and the iPad will then install the app wirelessly to the provisioned ipad.
You just need three files:
- Your developer-viewer.ipa
- A 57 × 57 icon (the DPS Icon Template creates one for you)
- manifest.plist file describing your app
So basicly, you have everything ready except the manifest.plist file wich we will look at now.
The manifest.plist file is a short xml file that describes the location and metadata of your app:
You can create this file in your text editor. You can take my example and edit all the lines after the <!— -> comments. Basicly you just need to edit 4 lines:
<string>software-package</string> <key>url</key> <string>http://nybok.de/viewer/developer-viewer.ipa</string>
First, change the url value inside <string> to the absolute location (including the full http://-Link) of the .ipa file you will upload later
<string>display-image</string> <key>url</key> <string>http://nybok.de/viewer/apple-adhoc-57.png</string>
The same for the 57 pixel png icon
The bundle identifier has to exactly match the one you see in the overview in Viewer Builder
<string>our lovely showcase</string>
this required string will be visible in the popup dialoge prior to installing.
If you make something wrong in the manifest file you probably won’t get an error later — the app will just not install.
Uploading the files
Then upload all the files onto your webserver through FTP. Your webserver should serve the manifest.plist file as text/xml plist and the ipa file as application/octet-stream ipa (should work on most servers).
If you don’t have a webserver, your public dropbox directory might work as well.
Generating the special URL
Then you just need to point your iPad to the the manifest.plist file with this special URL:
This will load the manifest.plist file in wich the iPad will look up for the .ipa file and — if everything looks ok — starts the download on the iPad:
Of course this URL is not fun to type in and looks ugly. You should use a shortening URL to make the URL more meaningful. Unfortunately, bit.ly does not allow shortening itms-services://-URLs. I only know of tinyurl.com that will do this and where you can also set up a custom short URL. So the shortened URL I use here is
wich I then just type into the iPad’s Browser or send via eMail to my client.
I use this type of distribution for any app I create, even for tests on my own because it is so easy, once set up you just need to replace the ipa file on your server.
Update 8/16: As a few people pointed out to me, there are services that do these things for you. Namely TestFlight and HockeyApp. They are great, especially for beta-testing your app including bug reporting. (Not the best workflow for DPS) But they do not allow anonymous installation and are not entirely free. Diawi is a service that does this anonymously and easy. With the procedure above you have all the files on your own server.