Acquisition And Announcement
When Apple bought TestFlight back in February 2014 I didn’t think much of it. Then, of course, they killed their Android beta service and that got me thinking that Apple may actually be doing something with it. Then at WWDC 2014 Apple debuted what I think was one of the best features as a developer, TestFlight in iTunes Connect. Finally Apple was going to allow beta testing within their walled garden. They were going to allow internal testers and external testers all without the pain of AdHOC provisioning profiles, device UUIDS, and a hassle setup. All you needed was an Apple ID and an invite.
About a week ago before the launch of the iPhone 6 Apple finally turned on iOS beta testing with TestFlight in iTunes Connect with the “real” TestFlight Application. This was great news, so naturally we started testing it within DABSquared. It was incredibly easy. All we had to do was:
- Add user’s Apple ID as an iTunes Connect User
- Wait for them to accept and join
- Flip the switch on the User for internal tester
- Add them as an internal tester on your app.
This was a lot easier than before:
- Invite user to TestFlight
- Wait for them to accept
- Walk through with them how to add their UUID to TestFlight
- Download an export file with all the latest UUID’s
- Import the UUID’s into Apples Developer Portal (Hope you still have space for devices)
- Go to each AdHoc profile you have and enable the new devices
- Regenerate and download each AdHoc Profile
- Open the new profiles with Xcode to add them to your KeyChain
- Generate a new build and upload to TestFlight OR Attach the New Provisioning Profile (Note: This way adds more steps to the end user I won’t get into)
It is also better because once your testers approve a build all you have to do is submit it to the store. No more having to then go to a separate build using a the AppStore Provisioning Profile. Everything is done with the original build you upload to iTunes Connect. So you can be absolutely sure that the build your testers used and approved is the one that gets submitted to the AppStore. No developers messing up builds or uploading the wrong file after testing. This adds a ton of safety for owners of companies. I can not tell you how many times I have had something build with my AdHoc profile and then days later after testing realized the AppStore build does not work, requiring changes with development.
As with all new products and services there are always issues. This one however, is a real drawback for us at DABSquared. Here at DABSquared, we have many clients all with their own iTunes Connect accounts. The issue though is that iTunes Connect only allows an Apple ID to be associated with one iTunes Connect account. This proves a major problem for companies with a lot of clients because you can not be an Internal Tester for all of them. So the question is why did Apple design it this way? Of course this is the way that iTunes Connect has always worked. If you look at Apple’s old documentation, before the new iTunes Connect debuted, it has never allowed an Apple ID to be associated with multiple iTunes Connect accounts. Apple has always allowed an Apple ID to be associated on multiple developer accounts and provides a sector for it when you login.
After encountering these issues we filed a bug report with Apple stating:
Currently an apple id can only be associated with one iTunes Connect at a time. This causes an issue with the new TestFlight ability with internal testers (I assume the same for external as well). As a developer I have multiple clients and I need to be an internal tester on all of them. Apple support said I would need to make multiple apple ids and then log out and in on the TestFlight app on my phone. HOWEVER, upon further investigation I do not even see the ability to logout and switch apple id accounts within the TestFlight application. THIS IS A MAJOR ISSUE FOR DEVELOPERS. This makes it so that I cannot start using the TestFlight feature on many of my clients applications.
A few days later we received this response:
Engineering has determined that this issue behaves as intended based on the following: If you're not a part of the company, sounds like you need to be using external testing where any email address can be invited to beta test a version. The testflight account used on device is the same one that's logged into the iTunes store. It can be changed from settings --> iTunes & App Store Please update your bug report to let us know if this is still an issue for you.
This posed a few issues for us at DABSquared, because:
- External Testing actually isn’t available yet (Why would apple suggest something we don’t even have the ability to try yet?)
- External Testing is supposed to go through an Apple review process making the build turn arounds much slower than internal testing
- Signing out and in of iTunes can get cumbersome and the device will most likely stop receiving push notifications for new builds.
This is actually all quite surprising because this goes away from the core way TestFlight used to operate. With the old TestFlight we could have multiple accounts for our separate clients all linked together without having to sign in and out on the devices.
So whether or not this is intentional, poor planning, or a bug we hope that everyone will comment on our OpenRadar and submit the same bug to Apple to help escalate it. Here’s to hoping we can get iTunes Connect with TestFlight to work how we, the developers with clients, use it every day. Not just how Apple uses it.