TestFlight is a great way to distribute apps to select user bases to test upcoming features, but enterprise organizations have different needs than those TestFlight can provide, especially as it relates to build expiration and user enrollment limits.
With an Enterprise Apple developer account you have the ability to distribute apps outside of the App Store and TestFlight using the generated enterprise distribution certificate. This method is mostly used within organizations to distribute production-ready apps that can easily be installed on any device, specifically internal business apps that shouldn’t be distributed to the public App Store.
When doing enterprise iOS builds, you might first have a tendency to email the IPA file, or distribute on a file server. While this works well for one-off builds, it is not an elegant way for employees to install apps if they are not technical as this method requires installation on the iOS device via iTunes or Xcode. In this article, however, we’ll show you an alternative way to distribute the enterprise builds: Using an over the air download page that will install the app without the hassle of using other tools or processes.
What You’ll Need:
- A LAMP web server with a valid SSL certificate installed
- Enterprise signed app
- App icon in PNG/JPEG format in two sizes: 57px x 57px and 512px x 512px
Enterprise vs. Standard Developer Accounts
Apple offers up two different flavors of developer accounts, but most developers are only familiar with the standard developer account. A standard developer account is limited to generating developer and ad-hoc provisioning profiles that can only be installed on registered devices. An enterprise account and accompanying distribution certificate and profile will allow installation on an unlimited number of devices.
Exporting Manifest File and IPA
The first step to exporting a Manifest File and IPA is to create an archive build of your iOS app that you’d like to distribute using this private server method. Ensure that the signing of the app is using the enterprise certificate for your developer account that allows for Ad-hoc installations.
Next, open the Organizer and select the version of the app that needs to be exported. Follow these steps to get a Manifest file and exported IPA:
- Start the export process by selecting the “Export” button in the sidebar, as you would normally do to export an IPA from an archive
- Select the “Save for Enterprise Deployment” option, then next
- Select the signing options to ensure that your enterprise certificate is being used
- When the “Device Support” options appear, choose the one that best suits your app (we’ll choose “Export one app for all compatible devices”)
- When you get to the Summary screen, ensure that the option for “Include manifest for over-the-air installation” is checked before clicking next
- On the follow up screen, you’ll be prompted to include URLs for the .ipa file on the server (where the IPA will be stored), the display image URL (the 57px x 57px variant), and the full size image URL (the 512px x 512px variant). Fill in the required information, then click Export.
- Make a note of where the export is stored as we’ll be uploading these to the server next.
When exporting builds in the future, it is not necessary to export a manifest file again, unless the settings contained in the manifest have changed (app URL or image URLs).
Configuring the download page
When exporting using the above instructions, you received a folder at the save location containing the manifest property list file, and the IPA file. You’ll upload these files to your server.
Next, download this pre-made download page. It’s a self-contained PHP page allows for easy configuration for apps — this is especially helpful if you deploy a wide array of apps on a single download server like we often do.
Once you download the index.php file, open it, and take a look at lines 3-5, these are the only lines that need to be edited.
$APP_TITLE = "My App"; $MANIFEST_FILE_PATH = "manifest.plist"; $ICON_FILE_PATH = "icon-512.png";
$APP_TITLE variable to ensure it’s the name of the app that will be publicly visible to people downloading the app. Edit
$MANIFEST_FILE_PATH to be the path to your manifest.plist file that was uploaded to the server. Finally, edit
$ICON_FILE_PATH to be the path to the JPEG or PNG file that was uploaded to the server and included in the manifest.plist file creation process.
When you are done, visit the URL to the index.php file on your web server, and you’ll see a page like the one below.
Downloading and Trusting
Visiting the publicly accessible HTML page will reveal a download link that, once tapped on an iOS device, will start the download of the IPA file and subsequent installation onto the device.
There is one more step before running the downloaded and installed app, however, and that is to trust the enterprise certificate. This can be done inside of Settings | General | Device Management, same as with any other enterprise signed app on iOS.