Deploying to App Store Connect

· 20min · software

I have recently developed an application that I wanted to release to a pool of internal users using App Store Connect. Unfortunately, the process is not evident, and I had to look up some resources on the configurations and mechanics to get an understanding of what is possible.

TestFlight Overview

Link 1 Link 2

Apple Testflight lets you upload a beta build of your application to App Store Connect instead of the normal App Store. Beta testers can then use the TestFlight application to install the beta app.

1. Creating an Application

First, we need to create an application in App Store Connect for the app that we want to distribute. A screenshot of the screen is provided below, and the information is self-evident. Note that the SKU stands for Stock Keeping Unit, and can be anything you want for keeping the internal ID of the application.

deploying-app-store-connect-1

2. Enter Test Information

To distribute the application to external testers, you have to enter some TestFlight information. Apple states that all of this information is required, although there are people who seem to have gotten approved while leaving a few things out. The most important parts that you may not have access to are the Privacy Policy and the license agreement. There are some free generators out there that you can use to generate these documents, like this one here.

ap-connect-test-info

3. Upload the Build

More information here

We can then upload the build using XCode.

Uploading App Binary with XCode

  1. Create an archive of the application. This is a build of your application, including debugging information, that XCode stores in a bundle. XCode will then repackage the archive contents based on the distribution configuration that is chosen in a later step. Archiving can be done by selecting Product > Archive in the XCode window.
  2. Make sure that the App Category, Display Name, Bundle Identifier, Version, and Build of your application is correct. You can find this information in your project settings. The Version number is used to indicate the release number of your application. It generally follows the major.minor.patch format. The build number is the sequential number that you increment each time you upload a build of the same version. This is important because you can release multiple builds of the same version. In App Store Connect, this could be due to 3 month expiry.

ap-connect-app-config-2

  1. Note, as we are building to a wide range of devices, and not specifically the simulator or any one physical device, make sure that the device is set to Any iOS Device.

ap-connect-device-selection-for-archival-2

  1. Once the build is complete, it will appear in the Organizer under Archives. You can open the Organizer via Window > Organizer. Now, if you want to confirm that the application is ready to submit to TestFlight or the AppStore without actually submitting, you can click on Validate App. This will cause XCode to perform a limited initial validation of the application and provide feedback.

ap-connect-organizer

  1. You can now select a distribution method. There is more information on the different distribution methods provided here, but we are going to choose TestFlight Internal Only, as we don’t want to generate a development build that will be submitted to the App Store.

  2. We also have the option of creating a custom distribution, which is what I often select as I don’t want the build to be limited to only internal users. There will be more options during this selection, but it will provide more control over the distribution of your application. I will not cover the custom distribution here.

  3. When the configuration is complete, XCode will start uploading your archive to App Store Connect. Any errors in your application will be uncovered here. If you want to see potential errors before the distribution step, you can validate the application first after step 4.

ap-connect-upload

4. Configuring and Releasing on TestFlight

After the application is uploaded to App Store Connect, it will show in your TestFlight builds on App Store connect under your app. The app is now ready to be shared with internal and external beta testers.

ap-connect-testflight-builds

Release To Internal Testers

Internal testers will can begin testing immediately, though there is a limit of 100 members that you can add as internal testers. You can configure new internal testers by first adding a testing group, and then adding internal users to that testing group. Note when setting up the group, you can setup automatic distribution such that the application will immediately get distributed upon the upload of a new build.

ap-connect-internal-group

Then, add the build to the internal group, and the users in the group will be notified.

ap-connect-development-group

Release to External Testers

Before release to external testers, the build will first have to go through a review process. As previously stated, this review process will take approximately 1-3 days on average. While the application is being reviewed, the status of the build will be Waiting For Review in the External Testing tab. When it gets approved, you will receive an email and will be able to add external testers to test the application.

ap-connect-external-group

To now you can add a public link that can be shared to anyone who wants to test your application, or you can add them as testers. Note that you will first need to create your own External Testing group (which I have called Beta Testers in this case). Apple will let you add up to 10,000 external testers for your application.

You application is now on App Store Connect, and has been made available for testing. You can follow the same steps to upload a new build of your application when you make any changes. Remember to make sure you let testers know how to provide feedback (testers can provide screenshots and written feedback) to make the most of the available tools.