For years iOS developers have used a service by Burstly called TestFlight, which was a simple way to distribute your apps to beta testers.
In February 2014, Apple acquired Burstly, and with the release of iOS 8 officially integrated TestFlight into its own iTunes Connect portal.
This 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 TestFilght in no time! :]
If you’re not familiar with setting up your app on the dev portal or in iTunes Connect, read through the section “Understanding Apple’s Rules Once and Forever” in the Introduction to the TestFlight SDK tutorial here on the site.
Submitting your Build to iTunes Connect
Open up your project in Xcode, make sure you have a correct Bundle Identifier and that you’ve chosen the correct Distribution Certificate:
Choose Product\Archive from the top toolbar:
Once Xcode finishes archiving your project, click the shiny blue Submit to App Store… button:
Now you need to choose your development team:
Finally, click Submit:
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 Admin, Technical, Financial, or even Marketing access to your app, and can, of course, become a tester. 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 1000 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, you’ll 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:
Now you need to assign roles for the user. In most cases, you’ll want to choose Technical. You can read more about the privileges for each role and choose the appropriate one for your user.
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.
Once you enable the testing account, choose the newly added account and enable the Internal Tester setting to let your user beta test your app, then click Save:
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.
To learn more, check out the “iTunes Connect and Apple IDs” section of the iTunes Connect Developer Guide.
It’s time to enable your app for testing — so the tester actually has something to test! :]
Enabling Beta Testing
To enable beta testing of your, go to the My Apps section on the iTunes Connect home page and click on your app:
Select the Prerelease tab and you’ll find your latest build. Simply turn on the switch to enable TestFlight Beta Testing:
Your app is now available for beta testing, but you need to invite testers before they can access your app.
To invite internal testers, go to the Internal Testers tab to start inviting testers. Check off the user or users you want to invite, click Invite, then click Invite on the confirmation popup:
All selected testers will now receive an email that lets them download and install this build.
That takes care of internal testers, but what about external testers?
That’s just as easy! Go to the External Testers 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 1000 external tester limit:
However, since you haven’t yet submitted your app for a normal review by Apple, external testers won’t get an invite until the app is approved. Go back to the Build tab and click Submit for Beta App Review. Once the app is approved by Apple, your external testers will receive an invitation email:
Before your app is considered for review, you’ll have to fill out most of the information on that page.
Once you’ve filled out the information, click Next:
Once you choose the appropriate Export Compliance option, click Submit.
You’ll see that your app is now waiting for review.
Both internal and external testers will receive the same email:
A tester must tap Open in TestFlight on the device; otherwise the app won’t be available for download by the tester.
Whenever you create a new build, the tester will receive a push notification stating that a new build is available. The tester must launch the TestFlight app to update the installed version of their app.
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. 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.
You’ll see the following screen which means you’re all ready for testing:
When the app has been approved and the app is ready for testing, you’ll receive an email inviting you to start testing:
Open this email on your testing device, then tap Open in TestFlight. This will launch TestFlight and show you the app you need to test. Tap Accept, then Install, and wait for the app to download:
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 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.
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.
I hope you enjoyed this tutorial, and if you have any questions or comments, please join the forum discussion below!