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](png/05b22ad-xcode_selectapp.png)
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](png/ead80d3-xcode_selectorganization.png)
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](png/e86d630-xcode_archivedapp.png)
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](png/0587103-xcode_validateapp.png)
Figure 4: Validate App
![Figure 5: Validated App](png/81b7852-xcode_validatedapp.png)
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](png/8fdc71f-xcode_distributeapp.png)
Figure 6: Distribute App
![Figure 7: Distributed App to TestFlight](png/bdd2b1f-xcode_distributedappontestflight.png)
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](png/2edf532-appstoreconnect_testflight.png)
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](png/aad6617-appstoreconnect_managecompliance.png)
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](png/332a967-appstoreconnect_readytotest.png)
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](png/a287926-appstoreconnect_internaltesters.png)
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](png/e37ace2-appstoreconnect_addinternaltesters.png)
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](png/f67178b-appstoreconnect_testersadded.png)
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](png/9acf8b9-testflightinvite.png)
Figure 14: TestFlight Invite
Updated 27 days ago