What early access means and why you'd use it

Early access lets you distribute your iPhone app to a limited group of testers before you release it to everyone on the App Store. Apple calls this TestFlight, and it's the official way to do it. You send test builds to real devices, get feedback on what breaks, and fix problems before millions of people download it.

Early access is different from just showing your app to friends. TestFlight tracks which version each tester has, lets them report crashes with automatic logs, and gives you a dashboard showing how many people are testing and what devices they're using. You can also set an expiration date on test builds so they stop working after a certain date.

Most developers use early access to catch bugs that only show up on real iPhones and iPads, not in the simulator. You might also use it to test with a specific group — your company's employees, your existing customers, or people who signed up on your website.

Key Takeaways

  • TestFlight is Apple's official tool for early access, and you set it up through App Store Connect, the same place you submit apps for public release.
  • You can invite up to 10,000 testers total, split between internal testers (your team) and external testers (anyone else).
  • Testers download the TestFlight app from the App Store, then accept your invitation through a link or email, and your test build appears in their TestFlight app.
  • Test builds expire after 90 days, so you need to upload a new build if testing takes longer or if you want to keep the same build available.
  • You must have an active Apple Developer Program membership to use TestFlight, which costs $99 per year.

Setting up TestFlight in App Store Connect

Start by signing into App Store Connect at appstoreconnect.apple.com with your Apple Developer account. If you don't have one, you'll need to create it and pay the $99 annual membership fee. Once you're logged in, select your app from the "My Apps" list.

On the left sidebar, click TestFlight. You'll see a section called "Builds" with a message that you haven't uploaded any builds yet. Before you can invite testers, you need to upload a build of your app. This is a compiled version of your code that runs on real devices.

To upload a build, you use Xcode (Apple's development tool) on your Mac. In Xcode, select your app's project, then go to Product > Archive. Once the archive is complete, click "Distribute App" and follow the steps to upload to App Store Connect. This process takes a few minutes. Once it uploads, it goes into a queue for processing — Apple reviews it within a few hours to make sure it's not malware or broken.

After Apple approves your build, it shows up in the TestFlight Builds section. You're now ready to invite testers.

Inviting internal testers (your team)

Internal testers are people you add directly in App Store Connect — usually your company's employees or contractors. They don't need a public link and can start testing as soon as you add them.

In App Store Connect, go to TestFlight and click the "Internal Testing" tab. Click the plus button to add testers. Enter their email address and select which builds they can test. You can add up to 25 internal testers, and they get access immediately without needing to accept an invitation.

Internal testers receive an email telling them they've been added to your app's testing group. They open the email, tap the link, and it takes them to the TestFlight app on the App Store (they may need to download it first). Once they install TestFlight, your app appears in their list of available test builds.

Inviting external testers (the public or a specific group)

External testers are anyone outside your organization. You can invite them in two ways: send them a direct link, or create a public link that anyone can use.

To invite specific people, go to TestFlight and click "External Testing." Click the plus button and enter their email addresses. You can add up to 10,000 external testers total. Each person gets an email with a unique link. They click the link, which opens TestFlight, and your app appears in their list.

To create a public link instead, stay in the External Testing section and look for "Public Link." Toggle it on. Apple generates a link you can share anywhere — your website, social media, email newsletter, or anywhere else. Anyone who clicks that link can join your testing group without you knowing their email address. This is useful if you want to let customers opt in to testing without managing a list.

External testers can stay in your testing group for up to 30 days. After that, they're removed automatically unless you extend their access. You can also remove someone manually if they're no longer testing.

What testers see and how they report problems

When a tester opens your app through TestFlight, they see your app exactly as it will appear on the App Store — with one difference. At the bottom of the screen, a small TestFlight banner shows the build number and lets them send feedback.

If your app crashes, TestFlight automatically captures the crash log and sends it to you. You don't have to ask testers to describe what happened. In App Store Connect, you can see a list of all crashes, which device they happened on, and the exact line of code that failed. This is much faster than asking someone to explain a problem over email.

Testers can also send written feedback by tapping the TestFlight banner and typing a message. They can include a screenshot. All feedback goes to your App Store Connect dashboard, where you can read it, mark it as resolved, or ask follow-up questions.

Managing builds and expiration dates

Every build you upload to TestFlight expires after 90 days. This means testers can no longer run that version of your app after 90 days pass. If you're still testing, you need to upload a new build before the old one expires.

You can upload as many builds as you need. Each time you make changes to your code, archive it in Xcode, and upload it to App Store Connect. The new build goes through Apple's review process again (usually a few hours) and then becomes available to your testers. You can choose which testers get access to which builds — you might give version 1.0 to your whole testing group but only give version 1.1 to a smaller group testing a specific feature.

To see all your builds, go to TestFlight and click "Builds." You'll see a list showing the version number, build number, when it was uploaded, and when it expires. You can also see how many testers have installed each build and how many crashes have been reported.

Moving from testing to public release

When you're satisfied with your app and ready to release it publicly, you don't submit a separate version. Instead, you take one of your TestFlight builds and submit it for App Store review. In App Store Connect, go to your app's main page and click "Prepare for Submission." Select which build you want to submit — usually your most recent one — and fill out the required information like screenshots, description, and pricing.

Apple reviews your submission, which usually takes one to three days. If they approve it, your app goes live on the App Store. Your TestFlight testers can now download the public version if they want, but their test version stops working once the public version is released.

You can keep running TestFlight for future versions even after your app is public. Many developers release version 1.0 publicly and immediately start testing version 1.1 with a smaller group of testers.

Frequently Asked Questions

Do I need an Apple Developer account to use TestFlight?

Yes. You must have an active Apple Developer Program membership, which costs $99 per year. This is the same membership you need to submit apps to the App Store. If you already publish apps, you already have it.

Can testers see my app's source code?

No. Testers only see the compiled app running on their device, the same way App Store users do. They cannot access your code, design files, or any internal information.

What happens to my test builds after 90 days?

They stop working. Testers can no longer open or run them. If you want testing to continue, upload a new build before the 90-day mark. You can upload as many builds as you need.

Can I test on Android with TestFlight?

No. TestFlight only works for iPhone and iPad apps. If you're building for Android, Google Play Console has a similar tool called "internal testing" and "closed testing."

How do I know if a tester actually tested my app?

App Store Connect shows you how many testers have installed each build and how many sessions they've opened it. You can see crash reports and feedback they've submitted. However, you can't see exactly what they did inside the app or how long they spent testing.