TestFlight Beta Testing: How to Invite Testers
TestFlight beta testing lets you share builds before App Store release. Invite testers by email or a public link and each build stays testable for 90 days.
Overview & context
TestFlight beta testing starts in App Store Connect: you upload a build, pick internal testers from your App Store Connect team and, for external testing, send email invitations or share a public link. You can have up to 100 internal testers and up to 10,000 external ones. The first build of each version needs Apple's review before external testers get it. Below you'll find the whole process of adding an app to TestFlight, the reasons a TestFlight public link might not work and how to give testers the TestFlight link and test instructions.
1. What TestFlight is and who can test
TestFlight is Apple's service for distributing beta builds of iOS, iPadOS, macOS, tvOS and visionOS apps before they're released on the App Store. A tester installs the TestFlight app from the App Store, signs in with their Apple Account and gets your app through an invitation or a public link. TestFlight is free, but the developer needs an Apple Developer Program membership.
TestFlight testers are either internal or external.
| Internal testers | External testers | |
|---|---|---|
| Who | App Store Connect users with the Account Holder, Admin, App Manager, Developer or Marketing role | Anyone with an Apple Account |
| How many | Up to 100 | Up to 10,000 per app |
| How to invite | Add them to an internal group | By email or with a public link |
| Apple review | No | Yes, for the first build of a version |
| Build availability | 90 days from upload | 90 days from upload |
2. How to upload a build to TestFlight
To upload a build to App Store Connect from Xcode, choose Product → Archive and click Distribute App in the Organizer. The TestFlight Internal Only option is for internal testers only. For an Expo or React Native app, build it with eas build --platform ios and send it to App Store Connect with eas submit --platform ios.
Every uploaded build needs a new build number (CFBundleVersion) within its version. The version users see (CFBundleShortVersionString) can stay the same, for example 1.4.0 with builds 57, 58 and 59. If you're not sure how to number versions and builds, read our guide to app versioning.
After the upload, App Store Connect processes the build for a few minutes. Once it's processed, you can assign it to testers in TestFlight.
3. How to add internal testers in TestFlight
TestFlight internal testers are members of your App Store Connect team and they get builds without Apple's review as soon as processing finishes. They're a good fit for developers, QA and product managers who want every build right away.
- 1
Open TestFlight in App Store Connect
In App Store Connect, select your app and open the TestFlight tab.
- 2
Create an internal group
Next to Internal Testing, click + and name the group, for example Dev Team.
- 3
Add testers
Pick users from your App Store Connect team. If someone's missing, invite them to the team under Users and Access first and give them one of the roles listed above.
- 4
Make the build available
Add the build to the group or turn on automatic distribution so the group gets every new build.
4. How to invite external testers by email or public link
TestFlight external testers go into an external group, which App Store Connect only lets you create once you have an internal group. Before you submit anything, fill in the test information: a beta app description, what to test and a feedback email. For each build you can also write What to Test notes, which testers see in every group that has access to the build.
A build for external testers has to pass TestFlight App Review. According to Apple's documentation, the first build of a version gets a full review and later builds of the same version might not. Only one build of each version can be in review at a time and you can submit up to six builds within 24 hours.
To create a TestFlight public link, open the external group's Testers tab and click Create Public Link. The link can be open to anyone (Open to Anyone) or limited by device and OS version (Filter by Criteria). Set Limit controls how many testers can join through the link, from 1 to 10,000. Testers who join through a public link show up as anonymous in the tester list.
5. Why does the TestFlight public link say no builds are available?
A TestFlight public link shows "No builds available" when the external group has no approved build that can be installed. The cause is usually a build that's waiting for review or wasn't added to the group, a build older than 90 days or a tester's device that doesn't meet the link's criteria.
The "isn't accepting new testers" message appears when the link's tester limit is full or the group has no available build. The TestFlight overview in App Store Connect shows insight cards when a group has no compatible build, the public link is full or a build is about to expire. If invitation emails don't reach your testers, send them the public link instead, since it doesn't depend on email delivery.
6. TestFlight feedback and crash reports
TestFlight feedback comes from testers on TestFlight 2.3 or later on iOS, macOS and visionOS, either from the TestFlight app or by taking a screenshot in your beta app. You'll find it in App Store Connect under TestFlight → Feedback. Testers on tvOS and older iOS versions send feedback to the email you entered in the test information.
Build metrics in App Store Connect show the number of sessions and crashes and each tester's crashes are listed in the group's tester list. For detailed crash reports, use Sentry or Firebase Crashlytics. If you send the version and build number with each error, you'll see which build introduced it.
7. Give testers everything in one place with AboutTheApp
Besides the TestFlight link, a tester needs to know what to test, where to report bugs, which test account to use and where to get the Android build. That information usually travels in emails and chat messages and changes with every build. In AboutTheApp you keep it with the app and testers find it on one page you send them.
In AboutTheApp you set up your testers as a separate customer of the app, for example Beta Testers. Their links are private and an unlock code that only applies to this customer opens them. Testers won't see your app's internal links.
AboutTheApp doesn't store test account passwords and doesn't sync with App Store Connect. You keep managing testers and builds in TestFlight. AboutTheApp holds the links and versions.
- 1
Create a customer for your testers
In your dashboard, switch to Customers, click Add customer and enter a name such as Beta Testers and the alias beta-testers. Then click Add installation on the app and pick this customer.
- 2
Add the links testers need
In the product editor, switch the link level to the Beta Testers customer, click Add resource and add the TestFlight public link, the Google Play testing link, your test checklist and your bug reporting page. Give each one a custom label such as iOS beta (TestFlight).
- 3
Set visibility and an unlock code
Set the links to Private and set an unlock code for the customer. The code only unlocks this customer's links, not the private links of the whole app.
- 4
Send testers one link
Send testers the About page URL with the customer and code parameters, for example aboutthe.app/room-booking?customerAlias=beta-testers&unlockCode=…. Search engines don't index pages with these parameters.
- 5
Record the version under test
In Product versions, click Add version, enter the version and put the build number and what changed into Changes in this version. Set an unreleased version to Private. Then add a deployment entry for the Beta Testers customer with the test environment and this version, so testers see which version is in testing on the Environments & Versions tab.
| AboutTheApp category | Link for testers |
|---|---|
| Custom | TestFlight public link, Google Play test opt-in link |
| Monitoring & Quality | Test checklist, test scenarios, Appetize |
| Issue Tracking | Bug report form or project |
| Security | Shared password manager vault item with test accounts |
| DevOps & Infrastructure | Test backend or test environment admin |
| Support | Developer contact for tester questions |
8. TestFlight for Android: testing on Google Play
There's no TestFlight for Android. The Android equivalent is testing in Google Play Console. An internal test reaches up to 100 testers, a closed test reaches the groups you pick and in both cases testers get a link to join the test and install the app from Google Play. If you want to know how Google Play testing works and what new developer accounts have to do first, read our guide to publishing an app on Google Play.
If you test on both platforms, put the TestFlight link and the Google Play test link on the same page for your testers. Each of them opens the one that matches their phone.
Frequently asked questions
How many testers can you have on TestFlight?
Up to 100 internal testers from your App Store Connect team and up to 10,000 external testers per app. You invite external testers by email or with a public link.
How long does a TestFlight build last?
90 days from upload. After that the build is no longer available to testers and you need to upload a new one.
Does a TestFlight build need Apple review?
Only for external testers. The first build of each version gets a full TestFlight App Review and later builds of the same version might not. Internal testers get the build without review as soon as it's processed.
Do TestFlight testers need an App Store Connect account?
Internal testers do, since they have to be users on your App Store Connect team. External testers only need an Apple Account and the TestFlight app on their device.
Why can't my tester see the build in TestFlight?
Usually the build is still waiting for review, it isn't added to the tester's group, it's older than 90 days or the tester's device doesn't meet the public link's criteria. Check the build and group status on the TestFlight tab in App Store Connect.
Is TestFlight free?
Yes, TestFlight costs nothing for you or your testers. To upload builds, though, you need a paid Apple Developer Program membership.
Is there TestFlight for Android?
No, TestFlight only works on Apple platforms. On Android you use internal or closed testing in Google Play Console, where testers get a link to join the test.
Where should testers find the TestFlight link and test instructions?
On one page you send them once and that doesn't change with every build. In AboutTheApp, create a customer for your testers, add private links to TestFlight, the Google Play test, your checklist and bug reporting and open them with an unlock code.
In short
With TestFlight you can test an app with your team or run a public beta with thousands of people. The build just has to pass review and be added to the right group. Keep tester links, instructions and versions with the app in AboutTheApp so testers find them in one place.
Want to give testers everything in one place?
Create your app in AboutTheApp for free and add links to TestFlight, Google Play, test scenarios and bug reporting.