How to get the .ipa file you created on an iPad or iPhone outside of the App Store.
1. Install from Xcode
Sometimes, mainly for troubleshooting purposes, you may want to install the
.ipa file via Xcode.
- Connect your iOS device via USB, then open Xcode
- From the Window menu, select "Devices and Simulators"
- Select your device from the list of devices, then use the "+" sign to install the
If something is wrong with the build or with your provisioning profile, you will usually get a more detailed error message.
2. Deploy the app over the air (Twixl built-in)
This method allows you to distribute the app more easily to your employees. The
.ipa file will be installed on a secure web server, and users will be able to install the app directly on the device.
2.1. Deployment URL
Before you create a build of your app, enter the deployment URL in the "Code Signing" section of the build settings. The deployment URL is the location on your web server where you will be putting the app.
Due to a recent change by Apple, Ad Hoc builds now require the mobile device to run in developer mode to be able to install and launch the app.
In the App ID Configuration on developer.apple.com, you'll need to check 'Secure Website' in the Deployment Details. Currently this information is optional, but this may become a requirement in the future.
Apple requires the deployment URL to be a secure (https) URL, so you may need to get an SSL security certificate for your web server. The profile for the app also must be explicitly accepted first, before you can use that app on the iPad or iPhone. First install the Enterprise app, then navigate to Settings -> General -> Profiles -> Enterprise app. There you will be able to trust the certificate for the company you just installed the app from.
2.2. Create a build
In the Build Setting for your app on the platform, make sure you have entered the OTA URL first (if you intend to distribute using the Twixl built-in method).
Three files will be generated when you create a build:
[appname].ipa: the application file
[appname].plist: a plist file
[appname].html: the page to navigate to
If you copy the three files to the folder that was specified as the deployment URL, users will be able to navigate to https://[yourserver].com/[appfolder]/[appname].html from their iOS device to automatically install the application.
3. Deploy the app over the air (using an MDM)
This method allows you to distribute your in-house app easily: the
.ipa file will be installed via a mobile device management system, such as Airwatch, Mobile Iron, JAMF, FileWave, Meraki, etc. The build process is exactly the same as for Twixl's built-in over the air deployment, except that you do not need to enter an OTA URL in the build settings.
In the App ID Configuration on developer.apple.com, you'll need to check 'MDM Deployment' in the Deployment Details. Currently this information is optional, but this may become a requirement in the future.
4. Deploying to Apple Business Manager
If your app is not intended for all audiences, Apple offers two different approaches to publish your app either in-house or privately.
If you are a company with more than 100 employees and you want to deploy your own app internally you can subscribe to the Apple developer Enterprise program. Because you publish internally, there is no app review process in this case. You will deploy the .ipa file (Enterprise build) on an internal server and provide access to the users that need to get the app.
One important guideline from Apple is that you can only publish to employees within your company. There’s no strict control of this and in reality we see lots of customers having a “broad interpretation” of this concept.
But then there’s the other approach Apple offers to deploy an app privately. Create a Custom app for business.
With Apple Business Manager, you can privately and securely distribute to specific partners, clients, franchisees, … and businesses can also distribute proprietary apps to their internal employees. This is also useful for businesses with less than 100 employees.
The clients, partners, franchisees, … you want to publish to first need to have an Apple Business account.
Then you, as a publisher, will need to identify in App Store Connect to whom you are going to publish by registering the Apple Business IDs of your clients, partners, franchisees, … or if you want to publish internally to your employees their individual Apple IDs.
Businesses that you identify in App Store Connect will see your app and be able to purchase it in the Apps and Books section of Apple Business Manager. You can offer custom apps for free or at any price tier you choose.
You’ll need to upload your app to the App Store for review and select the Custom App Distribution option. You’ll deploy the .ipa file (a Twixl App Store build).
The organizations that you identified will be able to distribute your app through a Mobile Device Management system. Alternatively, organizations can choose to provide redemption codes to authorized users to download the app on the App Store.
An organization can identify those authorized users with their Apple ID.
Based on this you can also use the Apple Business Manager approach to publish internally to individuals who you will identify with their Apple ID within your own account.
This allows you just to ask the Apple ID of individuals and enable them to download your app privately just by providing them a redemption code.
If you choose not to go for the Custom App Distribution you can still work with restricted access. An app with restricted access will require you to login when you start the app, and after a successful login you can access the content. But understand that Apple might reject such an app if they identify it as only targeting a limited audience in a specific organization. At any rate, when you submit such an app, make sure to provide a test login for the Apple review team, that displays relevant content.
A hybrid approach with parts of the content being available for all users and other parts only to entitled users is also an option. Different users or groups can have access to different parts of the content.