The App Store is meant to publish apps for the general public.
If you are building an app for the employees of a specific company, the App Store is not the right place for it.
Apple won't accept the app on the store.

To distribute this app to a targeted group of users, you have to do it internally, meaning outside of Apple's App Store. 

Apple provides 3 ways of distributing the app outside their general store: 

Unlisted distribution : Release your apps that aren’t suited for public distribution as unlisted on the App Store, discoverable only with a direct link. Apps for partner sales tools, employee resources, or research studies are examples of good candidates for unlisted distribution.

Custom Apps  : Distribute your app privately while using App Store Connect and Apple Business Manager.
With Apple Business Manager and Apple School Manager, you can privately and securely distribute to specific partners, clients, and franchisees. You can also distribute proprietary apps to your internal employees.

In House distribution: Distribute the app out of the app store, but with strict eligibility requirements via an Apple Developer Enterprise Program.

In this online help, we will show you how to distribute your app via an Apple Developer Enterprise Program.


1

Eligibility

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 " or "Unlisted app ​" to distribute your iOS app privately.


2

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

picture

3

Build your iOS app

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.  

1. Go to Publish > IOS > Publish
2. Select if you wish to manage the full process yourself, or if you'd rather GoodBarber to takes care of it for you
3. Follow onscreen instructions

Once the compilation (generation of your app file) process completed, you'll get the production file that you will distribute on your internal network.

picture

4

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.

picture

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. 

picture

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.

picture

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! 

picture

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.

picture

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

picture

picture

5

Distribute your app

Once your app finishes compiling, you can now download the production .ipa file.

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 (https://www.appaloosa-store.com/), 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" "http://www.apple.com/DTDs/PropertyList-1.0.dtd "> 
<plist version="1.0"> 
<dict> 
   <key>items</key> 
   <array> 
       <dict> 
           <key>assets</key> 
           <array> 
               <dict> 
                   <key>kind</key> 
                   <string>software-package</string> 
                   <key>url</key> 
                   <string>[https link to the IPA file]</string> 
               </dict> 
           </array> 
           <key>metadata</key> 
           <dict> 
               <key>bundle-identifier</key> 
               <string>[Bundle ID]</string> 
               <key>bundle-version</key> 
               <string>1.0</string> 
               <key>kind</key> 
               <string>software</string> 
               <key>title</key> 
               <string>[App Name]</string> 
           </dict> 
       </dict> 
   </array> 
</dict> 
</plist> 

 
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