How to upload to TestFlight (2026 step by step)
Prepare and upload the build
Before testers can install anything, you need a signed build in App Store Connect.
- Set up the app record. In App Store Connect, create the app with its Bundle ID, name, and primary language, if you have not already.
- Build for distribution. Archive a release build signed with a distribution certificate and provisioning profile. The build must be compiled with a current Xcode toolchain.
- Validate the build. Validation catches missing entitlements, provisioning problems, and privacy manifest issues before the build reaches Apple's servers.
- Upload to App Store Connect. Upload the build, either from Xcode's Organizer, from the command line, or through the App Store Connect API. The build appears under the app's TestFlight tab.
You can drive the upload without Xcode if you prefer. See the guide on submitting to the App Store without Xcode.
Wait for processing and set up testing
After upload, the build is not instantly testable.
- Let the build process. App Store Connect processes the upload, which usually takes a few minutes but can take longer. The build shows as processing until it is ready.
- Provide compliance and beta info. Answer the export compliance questions, and fill in the test information, including what to test and contact details, so testers and reviewers know what they are looking at.
- Enable TestFlight. Once processing finishes, the build is available to add to test groups.
Add internal and external testers
TestFlight has two kinds of testers, and they behave differently.
- Internal testers are people on your App Store Connect team with the right role, up to 100 users. They can install a build as soon as it finishes processing, with no extra review. This is the fastest loop for your own team.
- External testers are anyone you invite by email or public link, up to 10,000 people. The first build you add to an external group is sent to App Review for a beta review against the App Store Review Guidelines. Review is required only for the first build of an app; later builds typically go to external testers without another full review, as long as they do not introduce significant changes.
Testers install the TestFlight app, accept the invite, and download the build. Each build is available for up to 90 days, after which it expires and you upload a new one to continue.
How AppFlight handles TestFlight
AppFlight builds your native iOS app, runs it in a live simulator, passes it through an automated test gate, handles code signing, and uploads to TestFlight from inside the app, so you do not have to manage the archive and upload by hand. From there you manage testers and feedback in App Store Connect and in AppFlight's command center. You still need a paid Apple Developer account, and the external beta review is Apple's, not AppFlight's. AppFlight does not guarantee approval of the beta build or the final app. Apple reviews every app, so submitted is not the same as approved.
FAQ
How do I upload a build to TestFlight?
Build a signed distribution build, upload it to App Store Connect, wait for processing to finish, then enable TestFlight testing and add testers. Internal testers can install immediately; external testers need a beta review on the first build.
What is the difference between internal and external TestFlight testers?
Internal testers are users on your App Store Connect team, up to 100 people, who can test as soon as a build processes. External testers can be up to 10,000 people, and the first build sent to an external group goes through a short Apple beta review.
How long do TestFlight builds last?
A TestFlight build is available for testing for up to 90 days from upload, after which it expires and testers can no longer install it. Upload a new build to keep testing.