What a TestFlight invite link does
A TestFlight invite link is a URL that lets someone download and test your app before you release it to the App Store. When you share the link, the person clicks it, signs in with their Apple ID, and gets immediate access to your test version on their iPhone, iPad, or Mac. No app store submission required — they're testing the actual build you want them to try.
TestFlight is Apple's official testing platform. The invite link is the fastest way to get testers into your app without managing a formal beta program through App Store Connect. The tester doesn't need to be a developer, doesn't need Xcode, and doesn't need to know anything about your build process.
Key Takeaways
- You generate an invite link in App Store Connect by going to your app, selecting TestFlight, and creating a public link that anyone with the URL can use.
- The link works immediately — testers click it, sign in with an Apple ID, and install the test build on their device within minutes.
- You can set an expiration date for the link and limit how many people can join, or leave both open-ended.
- Testers see crash reports and feedback directly in the TestFlight app, and you receive all of it in App Store Connect.
- The link only works for one specific build at a time; when you upload a new build, you can generate a new link or keep using the old one.
How to create an invite link in App Store Connect
Log into App Store Connect with your Apple Developer account. Navigate to your app, then select the TestFlight tab on the left sidebar. You'll see your uploaded builds listed under "iOS App" (or whichever platform you're testing).
Select the build you want to share. Scroll down to the Public Link section. If you haven't created a link yet, you'll see a toggle to enable it. Turn the toggle on. App Store Connect generates a unique URL that looks like testflight.apple.com/join/[random-code]. Copy this link and share it however you want — email, Slack, Discord, your website, anywhere.
You can set an optional expiration date and a maximum number of testers. If you leave both blank, the link stays active indefinitely and anyone with the URL can join. Most developers leave these open unless they're running a closed beta for a specific group.
What happens when someone uses the link
The tester clicks your link in any browser or the TestFlight app. They're prompted to sign in with an Apple ID — the same one they use for the App Store. If they don't have an Apple ID, they can create one during this step.
After signing in, they see your app's name, icon, and description. They tap "Install" or "Update" (if they already have a previous build). The app downloads and installs on their device. They can then open it, use it, and report problems back to you through the TestFlight app.
The entire process takes two to five minutes. Testers don't need to understand builds, provisioning profiles, or any developer concepts. They just click, sign in, and test.
How testers send you feedback and crash reports
When a tester finds a bug or wants to share feedback, they open the TestFlight app on their device, find your app, and tap the feedback icon (usually a speech bubble or comment symbol). They can type notes, attach screenshots, and send it directly to you in App Store Connect.
If the app crashes, TestFlight automatically captures the crash log. The tester sees a prompt asking if they want to send the crash report. If they agree, you receive the full stack trace in App Store Connect under the Crashes tab. This data is often more useful than a tester's description because it shows exactly where the code failed.
You can also see how often each tester has launched your app, how long they've used it, and whether they've sent feedback. This helps you identify which testers are actively testing versus those who installed it and never opened it.
Uploading a new build and updating the link
When you're ready to test a new version, you upload a fresh build to App Store Connect through Xcode or Transporter. The build goes through processing — usually five to fifteen minutes. Once it's ready, you can either use the same public link or create a new one.
If you keep the same link active, testers see a notification in the TestFlight app that an update is available. They tap "Update" and get the new build. If you create a new link, you'll need to share that URL again, but this approach lets you control exactly who gets the new version.
Most developers keep one active link per app and let it point to their latest build. This way, testers always have the most recent version without you managing multiple links.
Differences between public links and internal testing
TestFlight offers two testing routes: internal testing and external testing. A public invite link is external testing. Internal testing is for your team — you add specific Apple IDs in App Store Connect, and those people get access automatically without needing a link.
Use internal testing for your immediate development team (designers, QA, other developers). Use public links for friends, beta users, or anyone outside your organization. Internal testers can test builds that haven't been submitted to Apple yet. External testers (via public link) can only test builds you've submitted to Apple for review, though they get access before the app goes live on the App Store.
This distinction matters if you're testing a build that Apple might reject. Internal testers can see it; external testers cannot. For most side projects and small teams, a public link is simpler because you don't have to manage a list of Apple IDs.
Common issues and what to do about them
If someone clicks your link and sees "This link has expired" or "You've reached the maximum number of testers," the link is either past its expiration date or you've hit your tester limit. Go back to App Store Connect, find the public link settings, and either extend the expiration or increase the limit. Then share the updated link.
If a tester installs the app but it crashes immediately, they'll see a crash report in TestFlight. Check App Store Connect for that crash log — it usually points to a specific line of code. If the crash is in code you didn't write (a third-party library), update that dependency and upload a new build. If it's your code, fix it, upload a new build, and testers will see an update notification within minutes.
If a tester says they never received the update notification, have them close the TestFlight app completely and reopen it. Sometimes the notification takes a few minutes to appear. If they still don't see it, they can manually check for updates by tapping their profile icon in TestFlight and scrolling to your app.
Frequently Asked Questions
Can I use the same invite link for multiple builds?
Yes. When you upload a new build, you can keep the same public link active. Testers see an update notification in TestFlight and can install the new version. You can also create a separate link for each build if you want to track which testers used which link, but most developers stick with one link per app.
Do testers need a paid Apple Developer account?
No. Testers only need an Apple ID — the free account they use for the App Store. You need a paid developer account ($99/year) to upload builds and manage TestFlight, but testers do not.
How long does a build stay available on TestFlight?
A build stays available for 90 days from the date you upload it. After 90 days, it expires and testers can no longer install it. If you want to keep testing, upload a new build before the 90-day window closes.
Can I see which testers are actually using my app?
Yes. In App Store Connect, go to TestFlight and select your app. You'll see a list of testers with their last launch date, total sessions, and whether they've sent feedback. This shows you who's actively testing versus who installed it and forgot about it.
What happens to feedback and crash reports after I release the app?
TestFlight data is separate from App Store reviews and crash reports. Once your app is live on the App Store, testers who used your public link can switch to the production version. Their TestFlight feedback and crashes stay in App Store Connect under the TestFlight section — they don't disappear. You can refer back to them anytime.