One of the iOS prototypes I had been working on recently reached a point where I was ready to run a small internal test with it. Looking around for tools to manage the process, most people I talked to mentioned TestFlight. I had used TestFlight before Apple’s acquisition to receive betas but never really ran the test process myself.
The process to add users to TestFlight is reasonably well documented. However, when trying to add one of my team members as an internal tester, we immediately ran into this error:
Turns out that person was also added as an internal tester to a different account. For alpha builds, Apple not only limits the number of developers that can be added as internal testers but also mandates that they are not part of a different internal beta test group.
Theoretically, we could create a provisioning profile for this and other developer devices that we’d like to test on, but the auto updates via TestFlight are really convenient. Some teams I talked to had implemented their own test management server to handle this, but it seemed like a lot of work.
It turns out, getting around this is rather simple. Unlike the app install management system that uses device UUIDs which makes that almost impossible to install unsanctioned apps, having an app managed by TestFlight only requires that user to get access to the welcome email (with the app link) TestFlight sends out when a new user is invited.
So basically you do this:
- Create a new iTunes account for the user using an email address that person has access to and has never been used for iTunes (or just create a new email address)
- Invite that new account to the alpha test.
- When TestFlight sends the invite email, get that email forwarded to the email address that user has on the iOS device. As long as the invite email is opened on the device, TestFlight will start managing the alpha test process as you had wanted.
The big “whew” moment here was that the TestFlight invite is (at least for now) not tied to the user’s iTunes account that he/she is using for the AppStore on that device. In fact, the invite email has no idea of whom the invite is for and can be used by anyone.
That said, the whole requirement of one user being able to participate in only one alpha is needlessly restrictive. Hopefully Apple changes this in the future.