Recently one of our clients came up with the requirement of delivering their iOS apps only to a specific organization without making it public and allowing the end users to install the apps on their private phones. We’ve started researching on how to make the apps available.
The Enterprise Program seemed to be the best solution. Taking a look on Enterprise Program descriptions, Apple specifically says:
Distribute proprietary, in-house iOS, watchOS, and tvOS apps within your organization. Securely host and deploy apps to your employees’ devices.
In this case the client’s organization must distribute to a third organization, and this is not allowed by the Apple Enterprise Program guidelines/rules.
We contacted Apple to get some clarifications on how to distribute the app and their answer was: Custom Apps. They also advised that the app must be installed only on devices belonging to users from the Business Account organization.
The Custom Apps home page is pretty explicit on what’s the purpose of this service:
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. Identify the businesses who can download your app and set a release date in App Store Connect. They will be able to find your app on Apple Business Manager once it’s published.
We decided to test this way of delivering iOS apps, but all the information regarding this is a bit confusing and disperse along the internet. After a successful delivery we decided to explain all the process in the following tutorial.
1. Set up Apple Business Manager account (target organization)
In order to distribute the app to the end users organization, the organization itself needs an account on Apple Business Manager. To enroll an organization Apple requires the D-U-N-S number, after the form is submitted Apple will approve the application. Some useful links with help can be found here and here.
The DEP Customer ID from the end users organization must be saved for the next steps, the number is behind the red square on the next image:
Also enable Custom Apps by pressing the enable button under the DEP ID number.
2. Upload the app to App Store Connect (developer)
You need the app ready to App Store Connect. Create the certificates needed and the app entry. Then upload it. Here’s some help on how to do that.
Important: Do not submit your app to review yet!
3. Set private distribution (developer)
- On App Store Connect select the app
- Go to Pricing and Availability section
- Choose the Available privately as a custom app for business under Distribution for Business and Education
- Select DEP ID type, add the ID saved on 1. and the Organization Name. This step gives app access to a specified organization
- Set the desired price as it is mandatory
- Save the changes
4. Submit to review (developer)
Yes, the app needs to be reviewed before it can be available to the end user’s organization. Usually, from our experience, this reviews are quicker than the public ones. 🙏
5. Purchase the app (target organization)
Access business.apple.com and go to Custom Apps Content, then the shared app must appear. Note that once it is published from the App Store Connect the app usually take some time to be available at Custom Apps.
Then, you can either purchase Managed License Types or Redemption Codes.
- Managed Licenses can be used in an MDM platform to distribute the app to the organization devices.
- Redemption Codes are codes that can be redeemed by the end users within the App Store app itself.
To solve our initial problem we choose the Redemption Codes option, here’s how it can be done:
- Go to Custom Apps section and select the desired app
- Then, buy a license of type Redemption Codes. Note that each code can only be used once, you will need one for each user of the app.
- After you purchase the Redemption Code press the Download button to download a .xls with the codes and direct links to install the app from the App Store.
- You can either open the links on an iPhone or redeem the codes from the App Store app itself, using the option Redeem Gift Card or Code. Then the app is installed and it will be always available on Purchased items.
This definitely serves as a solution to our initial problem, but we think there are a few things that can be improved on Custom Apps:
- The usability of the website. It can become frustrating to interact after a little while;
- Account sessions handling. When a user is logged in on App Store Connect and Business at the same time the session is lost;
- Create a view for the list of codes instead of using only the .xls to show the codes/links.
Thank you for reading!
Thank you so much for reading and if you enjoyed this article make sure to hit that 👏👏 button. It means a lot to us! Also don’t forget to follow Coletiv on Medium, Twitter, and LinkedIn as we keep posting more and more interesting articles on multiple technologies.
In case you don’t know, Coletiv is a software development studio from Porto specialised in Elixir, iOS, and Android app development. But we do all kinds of stuff. We take care of UX/UI design, web development, and even security for you.