This guide may be used to distribute apps wirelessly (without iTunes) using the Ad Hoc method, for testing, review, etc.

Limitations

Individual / Company iOS Developer program members are limited to 100 possible devices for use with Ad Hoc distribution, with each device UDID needing to be entered in the iOS developer centre.

Enterprise iOS Developer program members have the same Ad Hoc limitation, but also have In-House Distribution which is not tied to specific devices, but does require that devices where the app is installed are only used by employees of the company signing up to the program.

To Add Development Devices

Get the device UDID in Xcode select Menu > Window > Organizer and the 40  character Identifier field is the device’s UDID.  For non xcode users follow this guide here to get the UDID using iTunes, or download the free "UDID Share" app on your device.

In the Developer Center select 'iOS Provisioning Portal'.  Select 'Devices'

Add the new device to be used for development.

Click 'Provisioning'

Device being used for Ad Hoc Deployment

In the 'Distribution' tab click 'Edit' for the app Ad Hoc provisioning profile you want to add the device too.  Check the box for the new device, then submit and download the new certificate which should get automatically added to the xcode organiser.

If device is also to be used for development

In the 'Development' tab click 'Edit' for the app provisioning profile you want to add the device too.  Check the box for the new device, then submit and download the new certificate which should get automatically added to the xcode organiser.

Creating App Distribution File

1 – Check which build configuration 'Archive' is using (Menu > Product > Scheme > Edit Scheme > Archive)

2 – Check this configuration is set to use the correct 'AdHoc Distribution'  certificate (not Developer'). You can do this by selecting the project in the files tree > Select Project > Build Settings Tab > Code Signing.  Note that if this setting is wrong you will get a 'Unable to download error" later when trying to install the app on a device.  Note that for all of the certs you want to use your adhoc distribution certificates which include the enabled devices you will be testing with, not your final app store distribution certificates if you've already created them also. Naming your certificates with "adhoc" in the provisioning portal obvioulsy helps avoid cockups here!

3 – Build the app using Menu > Product > Archive

4 – The organizer will open with the archived app.  'Validate' will not work but press 'Distribute…' to create the Ad Hoc distribution.

5 – Select "Save for Enterprise or Ad-Hoc Deployment"

6 – Select the "Adhoc Distribution" code signing identity (not development)

7 – On the next screen choose where to save the file and name it (url friendly naming – no spaces), then to create a downloadable self installing distribution:

Select 'Save for enterprise distribution'

Enter the URL where the files will be saved, e.g. http://www.mydomain.com/apps/appname/myapp.ipa

Enter a title, e.g. My App Devel Release

Enter other fields if desired

MAKE SURE THE SAVE AS FILENAME IS CORRECT!! Must match the file name in the URL including capitalization.

Save the file.

8 – Now copy the generated .plist and .ipa files, together with the provisioning profile file (download it from your Apple member centre online as its not easy to find on your computer any more) and a simple index file to the URL you specified.

Unable to connect to www.yourwebsite,com error on device when trying to install the .plist file:

You have probably built with the wrong certificate  – see note above.  Delete all of the app certificates in the xcode organizer and work though again to be sure all is right. – You can't easily delete all the certificates now that they've become much more hidden in xcode5 (you can see them in Preferences > Account but you can't delete them any more) so this may be a step you can't do now.

If you've checked and double checked the certs are right then change to a new path on the server to force the new files to be used.  We've had problems more than once where we checked and doubled checked everything was right but kept getting the "can't connect to…" error when using the .plist link to find that moving files with a new name to a new directory  (and using the new path when distributing from the xcode organizer) causes it to magically work again.  Seems there is some caching bug in iOS so well worth trying.

Other Resources Regarding This

This is a good less detailed Guide

An Example Index.html page


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My App Download</title>

<style type="text/css">
<!--
body,td,th {
	font-family: Arial, Helvetica, sans-serif;
	font-size: medium;
	color: #333333;
}
body {background-color: #FFFFFF;}
a:link {color: #994D9D;}
a:visited {color: #994D9D;}
a:hover {color: #994D9D;}
a:active {color: #994D9D;}
.style1 {font-size: x-small}
-->
</style></head>
<body>
<div align="center">

  <p><strong>My iOS App Development Install</strong></p>
  <p class="style1">(These links will only work for the specific devices configured for testing of this app) </p>

  <p><a href="9B3004D2-370B-4E0E-80AE-BA2816299415.mobileprovision">Install The Provisioning File (required first time)</a></p>

  <p><a href="itms-services://?action=download-manifest&url=http://www.mydomain.com/apps/appname/myapp.plist">Install The App</a></p>

</div>
</body>
</html>