Black Lives Matter. Read our statement here.
Home · iOS & Swift Tutorials

TestFlight Tutorial: iOS Beta Testing

In this TestFlight tutorial for iOS, you’ll learn how to integrate TestFlight into your apps, invite people to join your beta, and send out builds to them.

4.8/5 17 Ratings


  • Swift 4, iOS 11, Xcode 9
Update note: Rony Rozen updated this tutorial. Dani Arnaout wrote the original post and Tom Elliott did the most recent update.

TestFlight Beta Testing is an Apple product that makes it easy to invite users to test your iOS, watchOS and tvOS apps before you release them to the App Store. This TestFlight tutorial will walk you through using TestFlight as part of your app’s release process.

This is one of those rare tutorials where you don’t code — just follow the steps and you’ll be up and running with TestFlight in no time! :]

Getting Started

This tutorial uses Drop Charge, from 2D iOS & tvOS Games by Tutorials, as the example in this tutorial. Because you’ll be submitting test builds to Apple for Beta App Review, you should follow along with a project of your own.

This tutorial assumes that your app is set up for provisioning, and has an app ID created in both the Developer Portal and on iTunes Connect.

This setup is outside the scope of this tutorial, but you can get all of the information you need on submitting an app and getting it published on the App Store in our two part tutorial How to Submit An App to Apple: From No Account to App Store.

Submitting your Build to iTunes Connect

Open your project in Xcode, make sure you have a correct Bundle Identifier, and that your Team ID and Release Code Signing Identity are properly set. Choose Generic iOS Device in the scheme chooser:

Then choose Product > Archive:

If everything is okay with the build, Xcode will open the Organizer window with your app in the Archives tab. Click Upload to App Store….

Xcode then prompts you with App Store distribution options. Xcode selects all the check boxes by default. Leave them like this and click Next:

The next screen asks you for distribution signing options. You can select automatic signing, or manually select your distribution certificate and provisioning profile. Select the relevant ones, and click Next.

Once Xcode finishes doing some of its magic, it presents a summary page for the app you’re about to submit. Click Upload.

Your app will start uploading to iTunes Connect. Xcode displays various messages as it compiles, verifies and signs your app. When the upload finishes, you should see the following message:

Just smile and click Done :]

That’s all the work required for Xcode. Your beta build is now available on iTunes Connect, and that’s where you’ll be doing the rest of the work to set up TestFlight.

Adding Internal Testers

Your build is ready for testing, but who’s going to test it?

Apple defines two types of testers for TestFlight:

  • Internal Tester: This is an iTunes Connect user that has an Admin, App Manager, Legal, Developer, or Marketer role with access to your app. This is usually a team member or a client for whom you’re developing an app. You can add up to 25 internal testers.
  • External Tester: This is any user outside of your team that wants to test your app. An external tester has no access to your iTunes Connect account in any way, and can only download and install the app. You can add up to 10,000 external testers.

Before your external testers can test your app, you must submit your app to Apple for review, exactly as you would with a normal App Store submission. These reviews tend to go faster than normal app reviews, although you shouldn’t count on it, and once it’s approved, you can let external testers test your app.

Internal testers, on the other hand, are instantaneously notified about new builds as soon as they are uploaded and processed within iTunes Connect. If you want more control over the builds that are uploaded then you might want to consider multiple external test groups instead. You’ll learn more about external testers later, but for now, you’ll focus on internal testers.

To add an internal tester, head to the Users and Roles section in iTunes Connect:

Click the + button to add a new user:

Fill in your new user info, using an email address you have access to, and click Next:

Note: If the email address entered is not associated with an Apple ID, your tester will have to create an Apple ID to accept the invitation. This only applies to Internal Testers as they need to access iTunes Connect.

Now you need to assign a role for the new user. View the privileges for each role by clicking the ? button, and choose the appropriate one. You can also choose to limit access to a single app via the Apps dropdown, or leave the default All Apps access.

If you’re unsure which role to chose, use App Manager which allows beta testing management and the ability to download apps. Once you’re done setting up your new user, click Next.

Choose the type of notifications you want your new testers to receive, then click Save:

iTunes Connect now sends an invitation to the new user and, as the message indicates, that user first needs to verify his or her email address before the account will show in iTunes Connect. Go the inbox for the new user’s email address, find the email entitled Welcome New iTunes Connect User and click activate your account. Once you’re done with this process, the new user you added should be enabled on iTunes Connect and can be used as an internal tester.

Creating a new internal beta tester is only the first part of the process. The remaining step is to invite this particular tester to test your latest build.

It’s time to enable testing on your app — so the tester actually has something to test! :]

Starting Beta Testing

To start beta testing of your app, go to the My Apps section on the iTunes Connect home page and click on your app:

Select the Activity tab. This is where you’ll find the build you uploaded earlier. If it’s still marked “Processing”, go make yourself a cup of coffee and come back later. :]

Next, click the TestFlight tab. You may notice a yellow warning sign next to the build you’d like to send internal testers. If this is the case, click the warning sign and complete the required steps.

Once you’re done, the build status will change to Ready to Test:

Next, click Add iTunes Connect Users in the left side menu. You’ll then see a list of your internal testers. Select the ones you’d like to add as internal testers for this build and click Add.

All selected testers now receive an email with a link to download and install this build via the TestFlight app. You can find detailed instructions on the testers’ point of view in the last section of this tutorial.

Before you get into the user flow, you should learn how to add external testers.

External Testers

First, click Test Information in the left side menu, and fill in all of the necessary information. At a minimum, this includes:

  • Beta App Description
  • Feedback Email
  • Contact Information

As the message indicates, you must provide this information in order to submit a build for external testing. Once completed, click Save.

Now, click Add External Testers in the left side menu. iTunes Connect asks you to create a new testing group. It’s up to you how you choose to manage your groups. You can either have one group for all of your testers, different groups for different types of testers, or different groups for different apps. For this tutorial, you’ll create one group called Top-Testers.

Once you’ve created the group, you can start adding external testers to it. Click Add Testers in the pop-up:

At this point, you can choose between adding new testers manually, adding existing testers (people already testing another app or build), or importing testers from a CSV file. For this tutorial, you’ll add new testers manually. Choose Add New Testers and click Next.

Add the email addresses, first and last names of any external testers you want to add. Once you’re finished, click Add. You can always add more external testers by clicking the + button on the testing group page. All external testers count toward your 10,000 external testers limit:

You now need to select a build for your external testers. On the Builds tab, click the + button:

Then, select your build and click Next:

Note: Why do you select the build separately for your internal and external testers? Well you may want your internal and external testers to be testing different builds. For example, your external testers may be testing your next release candidate, but your internal testers are testing your master build. By making you select a build for internal and external testers separately, iTunes Connect allows this kind of separation. Similarly, you can select different builds for different testing groups.

iTunes Connect may ask additional questions, such as whether the app requires sign-in or not. Complete the remaining steps, including providing testing information to display to your external testers.

iTunes Connect checks the Automatically notify testers check box by default. If you don’t want it to notify your testers as soon as the build is ready for them to review, uncheck this box (you have to notify them for the build to become available). Once complete, click Submit for Review.

iTunes Connect adds your app to the review queue and changes its status to Waiting for Review. To obtain approval, your build must fully comply with the full App Store Review Guidelines. Approval usually takes no more than 48 hours. Once Apple approves your version of the app, subsequent builds won’t require a review until you change the version number.

Once the app has passed Beta App Review, you’ll receive an email with confirmation that your app can now begin external testing. If you checked the Automatically notify testers check box, your external testers will receive notification emails at this point. Otherwise, you’ll have to go back to iTunes Connect to start testing. Your external testers will then receive an invitation email similar to the one received by your internal testers as described above.

Note: A build is only valid for 90 days. If you want your testers to use the app beyond that, you’ll have to upload a new build before the expiration date.

That concludes the developer’s perspective of app testing, but what does it look like from the tester’s perspective?

Testers’ Point of View

This section will walk you through the steps required from your tester in order to access the build you have just made available. It’s wise to be familiar with this side of the process because questions will come up!

Installing TestFlight

The TestFlight app is available on the AppStore. If you haven’t already, open the AppStore and search for TestFlight:

Download the TestFlight app and launch it. When asked to login, sign in with any Apple ID that you wish to use. This could be the personal Apple ID on your test device and doesn’t have to match the email address you added into iTunes Connect.

Redeeming Your App

When a build becomes available, or when you add a new tester, the tester receives an invitation to test the build via TestFlight.

Note: If you’re following along in real-time, it’s unlikely your build is approved, and will only be available to internal testers at this point.

Open this email on your testing device, then click View in TestFlight. This will launch TestFlight and redeem the invitation using the Apple ID currently in use in the TestFlight app. You’ll then see the following app preview page for your app:

Note: The View in TestFlight link in the email works via Universal Links, so if for whatever reason it doesn’t open TestFlight, just copy the link and open it in Safari. You’ll see a redemption code you can manually copy and paste directly into the TestFlight app.

Tap install and the app will download and appear on your home screen! Now you can treat it just like any other app. It’ll have an orange dot near the name in Springboard to indicate it’s a TestFlight install.

From now on, whenever a new version of this app is available, you’ll see a notification from TestFlight. All you need to do is update your app and run the latest version.

Where to Go From Here?

In this TestFlight tutorial you learned how to upload your test build and invite internal and external testers to your app.

If you’re interested in learning more about iTunes Connect in general, and beta testing in particular, read through Apple’s TestFlight Beta Testing Documentation. Apple’s Developer site also has a summary page for TestFlight, which includes links to all the relevant documentation as well as a video outlining the TestFlight process.

If you want to learn more about the process of submitting apps to the App Store, and not just the beta testing aspect of it, check out our 2-part tutorial How to Submit An App to Apple: From No Account to App Store. You can also check out iOS 11 by Tutorials for everything you need to know about iOS development using the latest and greatest tools and techniques.

I hope you enjoyed this TestFlight tutorial, and if you have any questions or comments, please join the forum discussion below!

Average Rating


Add a rating for this content

17 ratings

More like this