Everyone is by now familiar with the typical way to find and install iOS apps — through the Apple App Store. Apps published on the App Store are publicly available, meaning anyone looking through the App Store can find and install your app on their device. Fundamentally, not a whole lot has changed with this standard mode of distribution since the store’s launch in 2008.
However, over time, the need for developers to distribute their apps outside of the traditional App Store has grown, especially with an eye towards limiting the possible audiences who have access to particular apps. In response, Apple has provided an increasingly wide range of different distribution mechanisms to cater towards use cases that require limiting access to more tailored audiences.
While alternative distribution options have taken care of the needs of most teams for some time now, one particular use case was unmet until quite recently: namely, distribution to a limited but public audience. Unlisted App Distribution is the newest addition to Apple’s array of sanctioned distribution mechanisms and it’s meant to address that gap.
Why distribute apps to a limited audience, and how to do it
So why would you even want to limit who can download and use your iOS app? Reasons vary by company and product, but they tend to fall into some common categories:
- The app is proprietary to a company: the app is developed internally by a business, and is only meant to be used by employees of that business. Access to the app by the general public would expose proprietary or private information
- The app is custom-made for a particular group of people: the app was explicitly designed to be used by a specific group of people (be it employees of a specific company, instructors at a particular school, or maybe just your group of high school friends) and therefore it wouldn’t be useful or interesting to the general public. It might also provide access to information that shouldn’t be available to just anyone.
- The app is still in testing: you might not want your work-in-progress app to be available to everyone (yet), but you still want to be able to share it with trusted testers to gather feedback and uncover any issues early. Limited distribution is used to good effect for alpha and beta testing, for example.
Up until recently, if you wanted to limit who was able to download your app onto their device, these were your options:
Ad hoc distribution
To use ad hoc distribution, developers must specify the unique device identifiers of any and all devices they want to allow their app to be installed on. This can be a good option if you want to distribute an app quickly to a small number of specific users or devices. Apps distributed via ad hoc distribution don’t need to go through any form of App Store review.
TestFlight
TestFlight is Apple’s solution to getting early feedback on unpublished versions of your app from a defined group of testers. Testers are managed via App Store Connect, and they install versions of your app through the native TestFlight iOS app. One limitation of using TestFlight is that it doesn’t have robust support for distributing multiple flavors of an app at the same time – TestFlight was mainly designed to support beta testing of a single version at a time, to one or more different groups of testers. If you’re looking to test different builds with different features at the same time, enterprise distribution is a better choice. Keep in mind that Apple requires the first build of each new version being distributed via TestFlight to go through a beta review process which can often be just as lengthy (or even more so) than the regular App Store review process.
Enterprise distribution
Companies larger than 100 employees can apply to the Apple Developer Enterprise Program, which allows companies to distribute non-public apps internally, to their own employees. Membership to the program costs 299 USD per month, and a lengthy application and verification process is required. Enterprise apps don’t need to go through App Store review, presumably because they’re not intended for public distribution.
Custom app distribution
Using a normal Apple Developer account, you can specify particular businesses or educational institutions that you want to make your app available to. Members of those groups are then able to download and install your app through Apple Business Manager or Apple School Manager, both of which are Apple-developed portals that help IT teams manage the content that’s installed on their institution’s devices. This is a good option if for example you’ve been contracted to distribute a custom version of your app to a business, allowing them to find and install it directly through the Business Manager app. The process of distributing your app via custom app distribution is the same as the regular App Store distribution process, meaning your app (and any future updates to it) must still go through App Store review.
What about limited, but public, audiences?
While those four original, alternative distribution methods cover a wide range of use cases for limiting access to apps, one particular scenario doesn’t quite fit into any of the available options: what if you wanted to make your app discoverable by an audience that was limited, but still public? As an example, imagine the organizers of your favorite iOS conference want to make a neat companion app that only conference attendees have access to.
One might think that a possible approach for this use case is ad hoc distribution. Unfortunately, the process of collecting device identifiers from people so they can install the app isn’t straightforward, and adding to and maintaining that list quickly becomes prohibitively tedious.
Another approach developers often tried to take was to use the Enterprise Program to spin up apps that they could then share with their public audience. This is explicitly against the rules of the Enterprise Program, and it’s likely that this abuse is behind a recent tightening of the application process by Apple. Besides, enterprise apps don’t offer the best installation experience for the average user – to install an enterprise app on your device, you first have to “Trust” the enterprise certificate by going deep into your iOS settings and following a sequence of cryptic steps. Definitely not as streamlined as simply tapping “Get” from an App Store listing page!
And so, up until recently, a good (and Apple-approved) system for distributing apps to a group of users that don’t fall into the categories supported by ad hoc or TestFlight distribution, or enterprise or custom apps, simply didn’t exist.
Enter Unlisted App Distribution: for limited public audiences
At WWDC in 2021, Apple announced a solution to the limited-public-audience problem — unlisted apps. Unlisted apps are distributed in exactly the same way as normal public App Store apps, except they’re not at all discoverable in the App Store; they don’t appear in search results, charts, or in any categories. The only way that an unlisted app can be accessed is via a direct link. Once a user has access to your unlisted app link, they’ll be redirected to your app’s listing page and the download and installation experience is the same as any other App Store app. No convoluted changes to your device’s settings required. Because unlisted app links are public, though impossible to browse for, Apple recommends that you still build an authentication flow into your app to protect it against unauthorized or malicious use if your app’s link is unexpectedly leaked.
From a developer perspective, in order to start using Unlisted App Distribution, you must submit a request in App Store Connect using your existing Developer account. There are a couple of important things to keep in mind when doing so:
- A request to convert a normal app to an unlisted one can’t be reversed once approved: once your app’s unlisted distribution request is approved by Apple, the app’s distribution method is permanently changed to unlisted, and it can no longer be changed
- Your app must be submitted for review before it can be approved for unlisted distribution: contrary to some of Apple’s own documentation, developers going through the unlisted app request flow have reported that Apple has required them to first submit their app for review before submitting the request to make the app unlisted
- Custom apps being distributed through Apple Business Manager or Apple School Manager can’t be made unlisted: apps whose distribution method is set to private aren’t eligible for unlisted distribution. In such cases, Apple suggests creating a new app record and submitting a request for unlisted distribution for that new app
After your unlisted app request has been approved by Apple, the app submission and review process going forward is the same as if you were distributing to the App Store normally. You still have to maintain your app store presence and go through App Store review for every update.
Apple makes it pretty clear that Unlisted App Distribution shouldn’t be used to distribute beta or other pre-production builds of an app that is normally distributed through the App Store. This is admittedly a bit of a gray area: is an internal company build of an app considered beta or pre-production if it’s never meant to be distributed to the public? In a more general sense, though, Apple seems to disapprove of using Unlisted App Distribution as a simpler means to distribute internal builds. Remember that unlisted apps still need to go through App Store review, which alone makes it less than ideal as an internal build distribution system. TestFlight or Enterprise distribution seem to still be the most reasonable ways to distribute internal or beta builds, despite their limitations.
A distribution option for a narrow use case
Apple’s introduction of Unlisted App Distribution speaks to a real, and previously unaddressed, use case. Developers can now choose to distribute their apps to some specific public audience via a direct link, without the wider general public being able to find and download the apps right from the App Store.
However, the use case is admittedly narrow, and in practice many developers will find themselves trying to co-opt unlisted distribution for something it’s not allowed for. If, like many, you’re looking for an easier, more streamlined way to distribute beta or pre-production versions of an app to some audience, Unlisted App Distribution is not your answer. Given that Apple prohibits this, it seems you’re still stuck with Enterprise, ad hoc, or TestFlight distribution for now.