TestFlight & Beta Distribution
iOS Development — Production & Publishing
Chapter 5 · TestFlight & Beta Distribution
Chapter 4's own Ad Hoc profile — device-limited, up to 100 registered UDIDs — is the mechanism real beta distribution used to run on before Apple built a dedicated tool for it. TestFlight is that dedicated tool: Apple's own real, official beta-testing platform, built specifically to remove the manual UDID/provisioning-profile burden Chapter 4 described.
Internal vs. External Testers: A Real, Verified Distinction
TestFlight draws a real, sharp line between two genuinely different kinds of tester, verified directly against Apple's own TestFlight documentation:
| Internal Testers | External Testers | |
|---|---|---|
| Who | Up to 100 members of the actual development team | Up to 10,000 testers outside the team |
| Requires App Review? | No | Yes — Beta App Review |
| Real roles required | Account Holder, Admin, App Manager, Developer, or Marketing | None — any invited person |
| Invitation method | Added directly to the team on App Store Connect | Individual email invite, or a real public link |
Beta App Review: What It Actually Checks
Beta App Review exists specifically to gate the moment a build first reaches anyone outside the actual development team. The real requirement, verified directly: the very first build offered to external testers must already be approved before those testers can install it — a genuine, real checkpoint, distinct from (and lighter-weight than) the full App Store review Chapter 6 covers next.
Build Expiration
A TestFlight build doesn't stay installable forever — it expires after a real, fixed window, after which testers on that build must update to a newer one to keep using the app at all. This is a deliberate, real safeguard: it keeps testers from running an old, unmaintained build indefinitely once a project has moved on.
Getting a Build Into TestFlight
A build reaches TestFlight through the exact same real Archive step Chapter 4's own signing machinery underpins — Xcode builds and signs the app using a real Apple Distribution certificate, then uploads it directly to App Store Connect.
Hands-On Exercises
Explain, in your own words, why an internal tester never triggers Beta App Review while an external tester always does, connecting this back to the real trust boundary the review exists to protect.
📄 View solutionA team wants to invite 500 outside beta testers using a public link rather than 500 individual email invitations. Explain whether this is possible under TestFlight's own real tester categories, and why.
📄 View solutionExplain, in your own words, how Chapter 4's own Ad Hoc provisioning profile and TestFlight solve genuinely the same real problem (getting a build onto a real device outside the developer's own Mac) using two different mechanisms — and what real limitation of the Ad Hoc approach TestFlight removes.
📄 View solutionChapter 5 Quick Reference
- Internal testers — up to 100 team members, no App Review, automatic new-build delivery
- External testers — up to 10,000 testers, real Beta App Review required, invited by email or a real public link
- Beta App Review gates the first build any external tester ever sees, and re-triggers on every new build sent to an existing external group
- A TestFlight build expires after a real, fixed window — testers must update to keep using the app
- A build reaches TestFlight via Xcode's own Archive → Distribute App → App Store Connect flow, signed with the Chapter 4 Apple Distribution certificate