This article covers how to create an IPA file that can be used to deploy an application using either Ad Hoc distribution, for testing, or enterprise distribution, for internal applications.
In addition to the App Store, applications can also be deployed directly to 100 users for testing. This is known as Ad Hoc deployment. Additionally, applications can also be deployed internally, within a company, known as enterprise deployment, which requires enterprise licenses from both Xamarin and Apple.
In either case, an IPA package must be created, which is just a zip file that can be deployed to iTunes in order to sync the application with a device. This document coves how to build for distribution in order to create an IPA file.
The first thing required to build for distribution is to create an Ad Hoc provisioning profile. The process to create and install an Ad Hoc provisioning profile using iTunes Connect is identical to the one used to create an App Store provisioning profile, only instead of selecting App Store as the distribution method, you select Ad Hoc. For step-by-step instructions, see Creating and Installing a Distribution Profile.
Creating an IPA
Once the provisioning profile has been installed, you can use it to build for Ad Hoc distribution in Xamarin Studio or Visual Studio. Both IDEs include a build configuration for Ad Hoc development, which is pre-configured to build an IPA, as seen in the iPhone IPA Options section in the Project Options dialog, shown below:
Selecting the Ad-Hoc build configuration in Xamarin Studio or Visual Studio, as shown in the screenshots below, results in an IPA file being generated at compile time.
The IPA file is saved in the project’s /bin/iPhone/Ad-Hoc directory:
Syncing the IPA using iTunes
Double-clicking the IPA will open it in iTunes, where it can be synced to a device:
The IPA is just a zip file that contains the application, metadata and icons. You can examine it by changing the extension to .zip and expanding it. The metadata is packaged in the IPA inside a file called iTunesMetadata.plist. A plist is an XML property list file. This particular plist sets data about the app used by iTunes, such as the version, genre, etc. The file is included automatically in the IPA, however you can optionally customize it and include one via your IDE in the iTunes Metadata field.
This article covered how to create an IPA used for both Ad Hoc and enterprise deployment. It showed how to set the build configuration to produce the IPA as well as how the IPA works with iTunes to allow an application to be synced to a device.