TestFlight is Apple's built-in beta-testing service for iOS, iPadOS, tvOS, watchOS, and visionOS apps. Builds you upload to App Store Connect become available in the TestFlight app on the tester's device. It is the default path for getting a pre-release build into the hands of teammates or customers without going through full App Store review.
Internal vs external testers
- Internal testers
- Up to 100 people with an App Store Connect role on the team. Builds are available within minutes of upload and processing. No Beta App Review.
- External testers
- Up to 10,000 people invited by email or via a public link. The first build for an external group needs Beta App Review (usually less than 24 hours). Subsequent builds in the same train do not.
How it differs from Ad Hoc
- No 100-device-per-class cap. TestFlight is sized for thousands of testers.
- No UDID collection. Testers just have an Apple ID.
- Builds expire after 90 days, so you need a continuous release cadence.
- Requires an upload to App Store Connect (and a signed App Store provisioning profile).
TestFlight limits at a glance
| Limit | Value |
|---|---|
| Internal testers | Up to 100, each with an App Store Connect role |
| External testers | Up to 10,000 per app, by email or public link |
| Build availability | 90 days from upload, then the build expires |
| Beta App Review | First external build only, usually under 24 hours |
| Tester device info | No UDID collection; testers just need an Apple ID |
Public links and tester groups
External testers can be invited one at a time by email or through a public link that anyone can open to join, up to the 10,000-tester cap. Testers are organized into groups, and each group can receive a different build, which is how teams run a small canary group before opening a wider beta.