The purpose of publishing an app on the App Store is to reach a large number of users.
If your app is meant to be distributed only to a few users, such as the employees of your company, Apple won't accept the app on the store.
To distribute this application to a targeted group of users, you have to do it internally, meaning outside of Apple's App Store. 

Apple provides 2 ways of distributing the app internally: 
- Distribute the app privately as a Custom App
- Distribute the app privately In House, which is what we will talk about in this online help.



The Apple Developer Enterprise Program is only for the internal use and distribution of proprietary apps in specific use cases that are not adequately addressed with public apps on the App Store and custom apps.

One of them is to have 100 or more employees.
1. Check Apple eligibility requirements *

*If you do not meet Apple's requirements to subscribe to a Developer Enterprise Program, follow the process "Custom app " to distribute your iOS app privately.


Subscription to the Apple Developer Enterprise Program

The Apple Developer Enterprise Program costs $299 per year.

Warning:  After your subscription to the Apple Developer Enterprise Program, you have to wait 14 days before you can create the mobile provision certificates and compile your app. 

1. Go to the Apple Developer Enterprise Program  page
2. Scroll down to the bottom of the page
3. Select "Proprietary apps for internal use within my organization" from the drop-down menu
4. Click "Start your application"
5. Follow Apple's process



Get started with iOS submission process

1. Go to Publish > IOS > Publish > Get started with the iOS Review process    
2. Select “I want to publish my app in an internal network*”. 
3. If you haven't completed all of the mandatory steps in the "Get started" tab, do it. Scroll down to display the steps that are specific to the iOS publication process.


At the end of the compilation process, you will be able to test the ad hoc version of the app, an exact copy of the app that you will distribute to your users.

After that, you will be able to get the production file that you will distribute on your internal network.

You have the option to do this process yourself (Solo) or have GoodBarber to do it for you by choosing the GB Takes Care service.  



Compilation of the app 

If you chose to let GoodBarber do it for you, follow the steps in the backend unit. You are required to fill a form and then let the team take over the process. You will be warned in the support when your app is ready to be tested. 

In case you decide to do it Solo, the steps in the backend will guide you through the process. 

Here is a quick overview of what to do at each step of the process: 

Step 1: Developer Account 

Choose whether you will create a new Distribution Certificate or use an existing one/a p12 file.

  • The distribution certificate used for In-House (internal) distribution is called the In-house certificate and is valid for 3 years
  • An Apple Developer Enterprise account allows you to create a maximum of 2 in-house certificates.
In case you have reached the limit of In-House certificates in your developer account, you can either delete one that wouldn't be used or reuse an existing one.  Whenever possible, we recommend reusing an existing certificate or .p12 file. 

You can select a certificate from the dropdown list in the backend if all the following requirements are met:
  • You have already compiled another app with GoodBarber
  • You are using the same account ID for the other app and this one
  • Both apps will be compiled using the same Apple Developer Enterprise account
  • The existing distribution certificate is still valid in the Apple Developer Enterprise account (it has not been revoked)
If all the requirements are met, select I want to use an existing distribution certificate and choose the other app from the list.
A dropdown menu will show you existing distribution certificates used in your other apps.

If you're an expert, you can also import a .p12 file. The password associated with this .p12 file must be "duoapps".

Warning: If you upload or select a certificate that was not created with an Apple Developer Enterprise account, the system won't allow you to continue the process.


Step 2: Distribution Certificate

If you selected the option to create a new certificate, follow the instructions given in the backend to create and upload it.

If you chose to use an existing one, you can move on to step 3. 


Step 3: App ID 

If the app is new (meaning there is no preexisting version of this app), create an App ID as shown in the backend.

If this app will be updating an application that has already been internally distributed, you must provide some information about the existing application: 

  • The Bundle ID used for the existing application.
  • The last Version Number of the existing application.


Step 4: Push Certificate

Follow the instructions to associate a push certificate to your existing App ID and upload it in the backend.

Warning: Be very careful! If you choose the wrong App ID to create your push certificate in the Apple Developer account, the push notifications won’t work in your app! 


Step 5: Mobile Provision In House

Reminder: You will have to wait 15 days after creating your Apple Developer Enterprise account before you can create the In House mobile provision file. 

To create it, select the Distribution Certificate that was used at step1 and the App ID used at step3. 

Warning: The system will detect if the App ID is different from the Bundle ID you provided for the verification. Be very careful at this step. If you select the wrong App ID to generate your Mobile Provision, you won't be able to continue the process.


Step 6: Mobile Provision Ad Hoc

The Ad Hoc mobile provision file will allow you to install the Ad Hoc version of your app on the registered device(s) in order to test all its native features (like the push notifications for example). The Ad Hoc version of the app is an exact copy of the app, which you will distribute to your users.

To create it, you will have to select the Distribution Certificate that was used at step1, the App ID used at step3, and the device(s) registered in your Apple Developer account. 

Warning: Be very careful at this step. If you select the wrong App ID to generate your Mobile Provision Ad Hoc, you won't be able to continue the process.


After you're done with the 6 steps, click on Build my app and wait until the app is compiled.  




Test your app 

When the screen tells you the app is ready, you can download the Ad-Hoc version of your iOS app.

Click on Test my application and follow the instructions. 



Distribute your app 

After testing your app, you can either modify the app or continue.

If you want to edit your app, click on "Modify my application". You will see the previous screen (Ninja) again. After your modifications, come back to this page and click on build my app again to come back to the Test screen.

If you are satisfied click on "Distribute my application". 


Note: If you chose the GoodBarber takes care service, GoodBarber will send you the production .ipa file and you will be free to distribute the app where you want. 
GoodBarber cannot not take care of the internal distribution for you. 
There are 2 options for distributing your in-house app:
5.1 Publication in a private store. 

There are some dedicated services such as Appaloosa (, that allows you to distribute in-house apps on a private store. 
5.2 Distribution of an iOS app from a website.

Host the app's binary (the .ipa file) on a server.
The .ipa file can be downloaded from your backend : Publish > Publication > iOS. 
Prerequisite: Make sure that the .ipa file is hosted on a secure server (the URL must contain https://). Otherwise, it won't be possible to install your app on your users' devices.  

Create a manifest associated with this binary file.
A manifest is a file that contains metadata related to the other files it describes. For example, in our case, the manifest will indicate the URL of your app's .ipa file, the bundle ID, and the name of the app. 

You must manually build this file (see the example below). You can create the manifest in any text editor. When saving it, give it the .plist extension. 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" " "> 
<plist version="1.0"> 
                   <string>[https link to the IPA file]</string> 
               <string>[Bundle ID]</string> 
               <string>[App Name]</string> 

Don't forget to replace the following elements in brackets : 

[Https link to the IPA file]: Your .ipa file's URL after it's been hosted on a secure server 
[Bundle ID]: Your app's ID available on this page : Publish > Certificates > iOS 
[App name]: The name of your app 

Create a web page with a link to the manifest.  
After you've left the .plist file on a secure server, you can then create a web page where you'll put a link to download your app, like in the example below: 
<a href="itms-services://?action=download-manifest&url=URL_OF_THE_PLIST_FILE" id="text">Download our application</a> 

Don't forget to replace "URL_OF_THE_PLIST_FILE" with your .plist file's URL. 
You can also replace the text "Download our application" with another personalized message.  

Your app can be downloaded from the link created on your web page opened on an iOS device. Please note that the users may have to accept the developer in the Settings > General > Profiles and Devices (or "Device Management") menu of their phone before being able to install it.

More articles