10 Sep 2015

Over the Air iOS App Distribution – a Breath of Fresh Air

Developers have a love-hate relationship with the iOS development.  It’s fun to develop, however when it is time to distribute your shiny new creation, the enthusiasm is deflated very quickly.  Mention provisioning profile to a developer and you are likely to get a violent reaction.  The original TestFlight used to be your friend, but since Apple acquired it, it has seriously crash-landed.

So here is something that will make your day.  Instead of distributing the ipa files and syncing it through iTunes or distributing it through iTunes connect (test-flight), I am going to outline a much easier process that will enable the beta testers to install your builds just by clicking a link.

Follow the steps below to setup adhoc/production (in case of enterprise release) build distribution:

Step 1:

Archive your application from Xcode using adhoc provisioning profile

Screen Shot 2015-10-22 at 11.42.42 PM

Step 2:

Select archive from organizer window and click on export button.

Screen Shot 2015-10-22 at 11.56.24 PM

Step 3:

Select Adhoc, Enterprise or Development Deployment (2nd, 3rd or 4th option) and click on the next button

Screen Shot 2015-10-22 at 11.59.22 PM

Step 4:

Your ipa file is created now create plist file with following parameters

Screen Shot 2015-10-23 at 12.10.02 AM

Enter your ipa file path into url section

Step 5:

Now create a web page with a link of the .plist file using the special itms-services:// protocol. This might look something like the code below

Screen Shot 2015-10-23 at 12.15.51 AM

Step 6:

Upload these 3 files .ipa .plist and .html file on your web server or AWS S3 server and share your html file link with beta testers.


This feature was made available by Apple from iOS 4.0, Other services like test flight was earlier using same feature for build distribution. This feature itself has its advantages and disadvantages as listed below.


No need to add tester/developer account into iTunes connect.


  1. Developer need to take care of html and plist file creation or updates.
  2. Developer need to send Release notes/ build release notification separately.
  3. It does not notify if any tester/developer has installed the build or not.