New TestFlight • Quick need-to-know guide

Things to know

• iOS8 (or higher) only — What are you doing with that iOS7 build anyway?

• You need the ‘TestFlight’ app — form the App Store (on each test device).

• iTunesConnect — is where you administer who gets what build. You need the correct team member privileges to be able to do that, talk to the account owner.

• Version and build number (in Xcode > Project > General) — is what keeps track of which builds are which on iTunesConnect.

• It’s like a Release Build — archive and upload a build with a ‘Distribution’ provisioning profile, so it’s ready for store submission. (It can be the same build for store submission).

• Yes — you still need an active ‘Distribution’ certificate and provisioning profile, with matching app ID (bundle identifier), but…

• Forget Device UDIDs — Don’t worry about devices in the provisioning profile. It’s all about users now, not individual devices.

• Remember though—the Dev Portal and iTunesConnect are different planets, your status on one means very little on the other. You may not even exist on the other. (This causes a lot of confusion)

• You don’t have to do testing — to submit an app to the App Store. (But you should)

The Process

• Create a new ‘Version’ — of your app in iTunesConnect. Fill out all the details to get it ready for upload. Much like before iOS8.

• Match the bundle ID — and version in Xcode. Set your build number— Upload the build.

• Flip the switch — In iTunesConnect, turn on ‘TestFlight Beta Testing’ for your build.

• Internal is your iTunesConnect team — you have to add people to your iTunesConnect account in order for them to be internal testers. (Correction: Previously I wrote that they need to be added to the dev portal. They don’t.)

• Select testers for that build — and hit “Invite” if needed.

• The invitation — contains a link. You have to open the link on your device to install the build.

• Your Apple ID — (the one for iTunes & App Store on your device) can be different than the one the invitation was sent to, but…

• One invite = one Apple ID = multiple devices — Once you use the invitation, you can’t then use it with yet another Apple ID. But you can use it on another device with the same Apple ID.

• External testing — (as opposed to Internal) needs a review form Apple. Same build, just submit it for ‘Beta App Review’ in iTunesConnect. No, it doesn’t take a week. But it may take a few hours to even a day or two.

• External testers — can be anyone with an email address (and an iOS device).

Restrictions

• Up to 25 internal testers — (per build) can test on up to 10 devices each. You can add and remove testers for each build at any time.

• Up to 1000 external testers — (per build) can test with up to 10 devices each. (You don’t need 1000 testers)

• Each tester can test 10 — different apps at a time.

• Only one version of an app — (eg: 1.0.2) can be tested at a time.

• The latest build only — each new build will overwrite the previous.

• Uploaded test builds expire after 30 days — Upload a new one if you need to.

Bonus Mystery Problems (!)

Bonus Mystery Problem #1 — Removing a Dev Team member — If you remove a team member after they have generated a cert and profile. Those certificates/profiles will appear to be just fine, but may be messed up behind the scenes. Revoke and re-generate.

Bonus Mystery Problem #2 — Internal vs External tester — iTunesConnect will let people be both for a single build. But will then quietly freak out in the corner, when no one is looking, and vow to never again send a build invitation to the offending tester. Also, you can’t remove someone from Internal until you remove them from External.

Bonus Mystery Problem #3 — Build Uploading in Xcode 6 — Make sure your Apple ID on iTunesConnect and Dev Team Apple ID (prov profile) are the same. Otherwise you’ll have to upload manually with Application Loader.

There may be more Bonus Mystery Problems to run in to here (there usually are). Add a comment if you find any.