Upload iOS to TestFlight

Overview

TestFlight is a tool from Apple that allows users to download your app onto their iOS devices for testing prior to publishing to the App Store. When using Median's App Store Publishing Service our team will distribute your app to you via TestFlight to allow you to test on-device before submitting for approval with Apple. If you would like to use TestFlight yourself continue reading for guidance.

You must be enrolled in the Apple Developer Program. You'll then have access to App Store Connect, enabling you to upload app builds which can be set up for TestFlight.

1. Register app to App Store Connect

To upload your app for TestFlight, you will first need to register your app in your App Store Connect account by following the steps in the official documentation. This includes registering your app name and bundle ID.

2. Open app in Xcode

See Build iOS from source to download and open iOS source code in Xcode.

In Xcode, select YOUR_APP from the left panel as seen in Figure 1:

Figure 1: Select your app

Figure 1: Select your app

This will open another panel in the middle with various options. Select your target app in the "TARGETS" section and select "Signing & Capabilities". Now, choose your organization in the "TEAM" section and include your Bundle ID that you used to register your app in the previous section as shown in Figure 2:

Figure 2: Add signing configuration

Figure 2: Add signing configuration

3. Archive your app

Now, select Product > Archive from the top to archive your app.

If there are no build errors, Xcode will open a new window with your newly archived app as seen in Figure 3.

Figure 3: Archived app

Figure 3: Archived app

4. Validate your App

As seen in Figure 3, Xcode provides an option named "Validate App" to conduct an initial, automated limited assessment of the app and offer feedback. If you're looking to verify your app's readiness for TestFlight or the App Store submission without immediately submitting it, select your archive and then click on "Validate App".

Figure 4: Validate App

Figure 4: Validate App

Figure 5: Validated App

Figure 5: Validated App

5. Distribute your app

When your app is successfully validated, you can proceed to distributing the app to TestFlight by selecting "Distribute App". Select "TestFlight Internal Only" to allow testing for internal testers of your organization as seen in Figure 6:

Figure 6: Distribute App

Figure 6: Distribute App

Figure 7: Distributed App to TestFlight

Figure 7: Distributed App to TestFlight

6. App Store Connect

Visit App Store Connect's Apps page and open your registered app from the list. Select "TestFlight" from the top bar to see your newly uploaded TestFlight distribution as seen in Figure 8 below.

Figure 8: App Store Connect - TestFlight

Figure 8: App Store Connect - TestFlight

If you are seeing "Missing Compliance" such as above, click "Manage", choose "None of the algorithms mentioned above" from the options and hit "Save" as seen in Figure 9 below:

Figure 9: Resolve Missing Compliance

Figure 9: Resolve Missing Compliance

Now, you will see that your app is ready to be Tested as seen in Figure 10:

Figure 10: Ready to Test

Figure 10: Ready to Test

7. Add Internal Testers

Now, if you don't already have an internal testers group, click the "+" icon besides the "Internal Testing" label (see Figure 10) to create a new Internal Testers group as seen below in Figure 11:

Figure 11: Create new Internal Testers group

Figure 11: Create new Internal Testers group

Once the group is created, it will appear directly below the "Internal Testers" label as seen previously. Click the newly created group and you will see the following page with an option named "Testers (0)" to add the testers:

Figure 12: New Internal Tester Group

Figure 12: New Internal Tester Group

Click the "+" icon besides the "Testers (0)" label and add testers from the list of users in your organization. Once added, you will see the list of invited testers as seen in Figure 13 below:

Figure 13: Added Testers

Figure 13: Added Testers

Each tester will receive an email invite that they can use to test the newly uploaded app on the TestFlight iOS app.

Figure 14: TestFlight Invite

Figure 14: TestFlight Invite