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 into the App Store. This TestFlight tutorial will walk you through integrating TestFlight into your own apps.
This is one of those rare tutorials where you don’t have to code — just follow through the steps in this tutorial and you’ll be up and running with TestFlight in no time! :]
Don’t have an app right now but still want to proceed with this tutorial? No problem! Download our beloved Flappy Felipe project and use that as you follow along. Make sure you change the bundle ID of the app to your own unique ID; for example,
This setup is outside the scope of this tutorial, but you should be able to use automatic provisioning as described in Setting up Xcode to automatically manage your provisioning profiles, and create a record in iTunes by following the instructions in Create an iTunes Connect Record for TestFlight Beta Testing in the iTunes Connect Developer Guide.
Submitting your Build to iTunes Connect
Open up your project in Xcode, make sure you have a correct Bundle Identifier, that your Team ID is set, and that you’ve chosen the automatic Distribution Certificate Code Signing Identity:
Choose Product\Archive from the top toolbar:
Once Xcode finishes archiving your project, click the shiny blue Upload to App Store… button:
Now you need to choose your development team:
Finally, click Upload:
Wait for a few minutes as your build uploads. Grab a coffee, perhaps, or if you have a slow internet connection, go grab a bite. Or two. Or three. :]
Once you’re done, you should receive a success message like the following:
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.
Create and Enable Testers to Beta Test Apps
Your build is ready for testing, but who’s going to test it?
Apple defines two types of testers for Test Flight:
- Internal Tester: This is an iTunes Connect user that has an Admin, Technical, App Manager, Developer, or Marketer role with access to your app. This is usually a team member or a client you’re developing an app for. 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 2000 external testers.
Before your external developers can test your app, you have to submit your app to be reviewed by Apple, just as you would with a normal App Store submission. These reviews tend to go faster than normal app reviews (although don’t count on it), and once it’s approved you can let external developers test your app. Internal testers, on the other hand, are instantaneously able to test new builds.
You’ll learn more about external testers later, but for now, let’s focus on internal testers.
To add an internal tester, head to the Users and Roles section in iTunes Connect:
On the Users and Roles screen, click the + button to add a new user:
Fill in your new user info and click Next:
You’ll need to use a unique email address for your new user. If you don’t have a second email account, you can usually append
+whateveryouwant to the first part of your email address, and the email will still get delivered to you. For example
Now you need to assign roles for the user. In most cases, you’ll want to choose App Manager. You can read more about the privileges for each role and choose the appropriate one for your user.
|Can be an Internal Tester||✓||✓||✓||✓||✗||Can Upload a Build||✓||✓||✓||✗||✗||Can Submit a Build for External Testing||✓||✓||✗||✗||✗|
Once that’s done, click Next:
Choose the type of notifications you want your new testers to receive, then click Save:
Your user is now created, but as the message indicates, that user first needs to verify his or her email address before the account will show in iTunes Connect.
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 your app for testing — 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 and you’ll find your latest build. Make sure it is no longer marked as processing. If it is, go make another cup of coffee and come back later. :]
Next, click on the TestFlight tab, then Internal Testing in the left hand menu. Click Select Version to Test and choose the version you just uploaded. Finally, click Start Testing and, in the confirmation pop-up, Start Testing again.
All selected testers will now receive an email that lets them download and install this build from the TestFlight app. There are detailed instructions on how to do that in the last section of this tutorial.
That takes care of internal testers, but what about external testers?
Next, go to the External Testing tab, click the + button and select Add New Testers:
Add the email addresses of any external users you want to add. Once you’re finished, click Add to add these testers to your account. All external testers will count toward your 2000 external tester limit:
You now need to select a build (again) for your external testers, and put that build through the Beta App Review.
Click Add Build To Test, select your build, and then click Next.
Fill in all the fields. Remember – the more information you give Apple the easier it is for them to review your app! Finally, hit Submit.
Your app will be added to the review queue! :]
Once the app has passed Beta App Review you will receive an email with confirmation that your app can now be used by external testers.
Head back to the External Testing section for your app in iTunes Connect, select the build and hit Save. A dialog will pop up confirming that you are about to notify people. Click Start Testing.
Your external testers will then receive an invitation email similar to the one received by your internal testers as described above.
That shows the developer’s perspective of app testing, but what does it look like from the tester’s perspective?
Testing an App
As an internal tester, you need to link your Apple ID to iTunes Connect (external testers can skip to the TestFlight App section below). By now, you should have received an email from iTunes Connect that looks like this:
Click on activate your account and follow the supplied steps. Once your account is ready for testing, get your iOS device and go to the Settings app. Scroll down to iTunes & App Store:
Log in with the account you just verified a minute ago. If you’re already logged in with another account, log out first:
Go to the App Store, and search for the TestFlight app:
Download the TestFlight app and launch it.
Internal testers will automatically receive an email when new versions of the app are uploaded to iTunes Connect. External testers will receive a similar email after the app has been through Beta App Review and the build has been pushed out to external testers by an Admin or App Manager in iTunes Connect:
Open this email on your testing device, then tap Start Testing. This will launch TestFlight and show you the app you need to test. A tester must tap Start Testing on the device they’ll be testing on; otherwise the app won’t be available for download by the tester. Tap Accept, then Install, and wait for the app to download:
The app will be downloaded and appear on your home screen!
That was the hardest part of being a tester. 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 knowing 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.
You can also check out iOS 8 by Tutorials; the final chapter What’s New with iTunes Connect showcases everything you need to know to manage your testing effort.
If you want to take your app deployment to the next level, take a look at our fastlane tutorial, which covers a set of tools that you can use to automate managing iTunes Connect and submitting apps.
I hope you enjoyed this TestFlight tutorial, and if you have any questions or comments, please join the forum discussion below!