4 min read

How to distribute an iOS App: 4 cases

What should you do to make your app visible to the whole world, only friends, or a specific company? Depending on your goals, there are different solutions. In an article for Anywhere Club, iOS Developer Nadzeya Savitskaya, who filled out the form "Become a hero of the club," describes 4 options for you.

If you want to share your expertise, we look forward to your application.

Nadzeya Savitskaya, iOS Developer

— As soon as a developer writes their first “Hello World!” app, the questions arise — to whom, how, and where is it possible to install this application. In this article I describe the main options for distributing an application: ranging from installing it on your phone to publishing it in the App Store.

Case 1. How can a developer test an application on their phone

— If an iOS developer wants to write an app exclusively for themselves, all they need is an Apple developer account (free), a MacBook, Xcode, an iPhone, and a cable. Write the desired application, connect the phone by cable to the MacBook, and load the application on the phone. At this point, the application is ready, and can be used on the phone.

But let’s look more deeply, and consider in detail what is happening under the hood of Xcode and the developer account, and what allows us to run our applications on the phone.

When you created the app, a unique bundle identifier (ID) and Development Provision Profile were registered, and will include a list of devices on which this application can be run. When you launched the application using the cable on your device, the UDID of your device was automatically recorded in the provision profile. It is important to remember that a finite number of devices can be added to the development provision profile. These will be devices that are associated with you. They must be connected to the computer by a cable to install the application on them, or you need to add their UDID to developer.apple.com.

Case 2. How can a developer install their app to friends or send it to a client

— What if we don't want to limit the app only to a personal device? Then, we will pay Apple $99, and will have a year to use all the features of a paid account.

By doing this, we have added the following to our development toolkit:

  1. A paid Apple developer account;
  2. Internal group of testers in TestFlight;
  3. External group of testers in TestFlight; and
  4. Link testing with up to 1000 testers.

But Apple's tools also have drawbacks:

  1. All internal testers should be added as users to your App store Connect, plus the number of internal testers is limited; and
  2. For external testers, you are limited to 1000 people and access by link.
  3. Before testing, it is necessary to undergo a review by Apple. This means that the application must be working, understandable, and comply with all Apple guidelines. Therefore, it is not possible to use this approach when you want to release something quickly, or completely raw.

If the potential drawbacks are not an issue for you then, using this approach, it is possible to work with some customers and their own applications. In small companies, this may be adequate.

TestFlight, of course, has alternatives for distributing the build to friends, customers, and testers.

The easiest option if you want to share something with friends or customers that will not pass the preliminary Apple review, is to add the UDID profile of all the necessary devices to the provision. Then, you can use, the wonderful site diawi.com, for example. Visual Studio App Center helps everyone in development and is another great option. Visual Studio App Center combines services commonly used by mobile developers, including: assembly, testing, distribution, monitoring, and diagnostics. In the App Center, you can also create different testing groups. Testers are notified after builds are uploaded. From the App Center you can upload builds directly into the App store, and review them for the store as well. Azure Dev Ops works together with the App Center to create the build and upload it into the App Center. If the system is configured well, then a push to the branch that you need in GitHub will start creating the build and uploading it to the App Center. But don’t forget that the devices for testing should be added to the profiles.

Case 3. How can a developer publish their app in the App Store

— At this stage, there are only two steps separating us from publication in the store:

  1. Designing a product page with screenshots, keywords, and links to privacy information and terms; and
  2. Passing the review.

Now, let me share a few points about passing the review. If the application is being reviewed for the first time in the store, and this is the 1.0 version, then it is better not to add purchases and subscriptions to it. Prepare the maximum possible functionality so that the application is beautiful and is not an exact copy of existing ones. There is a 95% chance that the first review will be rejected, but this is normal — you change something depending on the comments and submit it again.

Case 4. How can a developer publish their application only for a specific company

— What if we want to limit the release of the application, so it is not accessible to everyone, but only a specific company? Of course, we can do this on a simple Apple Developer Program and distribute the application through testing in TestFlight by providing a link. But with TestFlight, we will run into limits, so the Apple Developer Enterprise Program comes to our aid. ADEP is a separate account that costs $299 per year. Using it makes it possible to distribute your application only to the group of people you’ve selected. However, not everyone is eligible for a corporate account. They are only intended for the internal use of proprietary applications in scenarios that are not appropriate for the public Apple App Store, Apple Business Manager, beta testing, or ad hoc distribution. The application must be developed by the organization seeking to selectively distribute it, and it must be specifically for use on Apple platforms.

Other requirements imposed on the developer company include:

  1. Minimum of 100+ employees;
  2. Business must be a legal entity;
  3. Measures should be taken to ensure that the application is accessible only to employees, and that all credentials are protected; and
  4. Business must go through the Apple verification process and continuous evaluation.


There is also Apple's Volume Purchase Program (VPP) for B2B App Distribution. With the help of this program, educational institutions can issue Apple equipment with already installed software, which is not found in the public domain.

— I’ve tried to share with you the main options for distributing applications for different needs. I hope this article was useful and I will be happy to receive feedback.

Go to Discord