Friday 15 November 2013

Deploying a development iOS app to a small number of internal devices

This doesn't happen often where I work,  but once in a blue moon,  we need to add a certain functionality to our iPhone app that we need to test internally on a few devices but some of the devices are located in another province thus,  we don't have physical access to some of these iOS devices.

how do we go about doing this?  I've used a 3rd party called Diawi in the past and it works great as long as you follow a few steps.  (there are alternative sites for doing this like etc)

what is the first thing you need to do?   You need to collect the UDID's of ALL the devices you wish to test or adhoc deploy to. The most reliable way to do this is via iTunes.   (i've tried UDID retrieval apps in the past however as of iOS7 all of these methods are broken and return bad information. If the UDID returned starts with a a bunch of ffffffffffff's in a row,  then you don't have a real UDID and it will only cause you headaches. )

what are the steps to retrieving the UDID's for a particular device?

Step 1. Launch iTunes.

Step 2. Plug in your iPhone or iPod or iPad

Step 3. Click on the device name in iTunes Menu

Step 4. Click on "Serial Number" in Summary Menu.

Step 5. Notice that the Serial Number will change to a long letter and number string called UDID.

Step 6. Right click on the UDID number and choose "Copy",  then paste that UDID number into notepad or an email so we can add it to our developer provision for testing.

Once you have collected the UDID's that you require for internal testing the next step is to add them to your adhoc or development provisioning profile (example .mobileprovision) on your apple developer profile.

Step 1. Log into the apple developer portal and navigate to "Certificates, Identifiers & Profiles".  Click on the Devices 'all' section on the left and it will show you the current list of developers associated to your provision profiles.   (Yes this means your development profile as well as your adHoc profiles.)
Click on the + sign at the top right to add new UDID(s)

Step 2. The next page will just ask you to enter a name and the UDID of the device you wish to add. Input the relavent information and then click "continue"

Step 3. Once you've added your additional UDIDs for deployment you then need to look for the 'provisioning profiles' section of the left side bar and click on either Development OR Distribution depending on what kind of app build you plan on using the newly added UDIDs against.   For testing internally we do AdHoc distribution builds of our App.   But you could technically use a Debug build with the Development profile.   Click on the profile you need on the right panel,  because just because you've added UDID's to your apple devices list DOES NOT mean they are currently active inside the provision profile.

Step 4. By clicking on the profile you can then see more information about the profile; but, more importantly you can edit the profile to "activate" your newly added UDID's.    click "edit".

Step 5.  On the edit provision page you can see that Ali and Andrea whom I just added as new UDID's are unchecked and thus not actually allowed to use our development build with this provision file.  If you were to send them the .mobileprovision file at this point their iphone's would simply display an error and refuse to install the provisioning file.   You need to check these names off in this screen and then hit "Generate" at the bottom of the page to generate a new development provisioning file.   Note* you will also have to do the same to the Distribution profile on the left panel if you require them to test against an AdHoc build which requires the use of a distribution profile and not a development one.

After you've generated a new provision,  can you simply download it and use it to build your AdHoc version and then submit it to Diawi for your testers to download and try out.

1 comment:

  1. This an informative and helpful post - so clear and easy to follow step by step process of Deploying a development iOS app to a small number of internal devices along with snapshots. iPhone APP Development Company.