Chapter 26
Beta Testing with TestFlight and CloudKit Production Deployment
If you are not embarrassed by the first version of your product, you've launched too late.
- Reid Hoffman, LinkedIn
Now that you have completed the testing of your app on a real device, what's next? Submit your app directly to App Store and make it available for download? Yes, you can if your app is a simple one. If you're developing a high-quality app, don't rush to get your app out, as I suggest you beta test your app before the actual release.
A beta test is a step in the cycle of a software product release. I know you have tested your app using the built-in simulator and on your own device. Interestingly, you may not be able to uncover some of the bugs, even though you're the app creator. By going through beta tests, you would be amazed at the number of flaws discovered at this stage. Beta testing is generally opened to a select number of users. They may be your potential app users, your blog readers, your Facebook followers, your colleagues, friends or even family members. The whole point of beta testing is to let a small group of real people get their hands on your app, test it, and provide feedback. You want your beta tester to discover as many bugs as possible in this stage so that you can fix them before rolling out your app to the public.
You may be wondering how can you conduct a beta test for your app, how beta testers run your app before it's available on App Store and how testers report bugs?
In iOS 8, Apple released a new tool called TestFlight to streamline the beta testing. You may have heard of TestFlight before. It has been around for several years as an independent mobile platform for mobile app testing. In February 2014, Apple acquired TestFlight's parent company, Burstly. Now TestFlight is integrated into App Store Connect (previously known as iTunes Connect) and iOS that allows you to invite beta testers using just their email addresses.
TestFlight makes a distinction between beta testers and internal users. Conceptually, both can be your testers at the beta testing stage. However, TestFlight refers internal users as members of your development team who have been assigned the Technical or Admin role in App Store Connect. You're allowed to invite up to 100 internal users to test your app. A beta tester, on the other hand, is considered as an external user outside your team and company. You can invite up to 10,000 users to beta test your app.
If you are going to let external users test your app, the app must be approved by Apple before you can send out the invitation This restriction doesn't apply to internal users. Your internal users can begin beta testing once you upload your app to App Store Connect.
Similar to CloudKit, TestFlight is not available for free. You have to enroll in the Apple Developer Program ($99 per year) before you can access TestFlight.
In this chapter, I will walk you through the beta test process using TestFlight. In general, we will go through the tasks below to distribute an app for beta testing:
- Create an app record on App Store Connect.
- Update the build string.
- Archive and validate your app.
- Upload your app to App Store Connect.
- Manage beta testing in App Store Connect.
To access the full version of the book, please get the full copy here. You will also be able to access the full source code of the project.