TestFlight or an OTA install link?
Three questions decide it, and for a lot of teams the honest answer is TestFlight. This page is written to send you to the right one rather than to ours.
Every claim about TestFlight and ad hoc distribution below is Apple's own, linked at the bottom.
The three questions
1.Do you have a signed build?
No — Then neither route works yet. Both need a paid Apple Developer Program membership — this is the one thing no distribution service can give you. Start at what a free Apple account can and cannot do, then IPA signing.
Yes — Go to question 2.
2.Are the testers' devices already in your provisioning profile?
No — Use TestFlight. It needs no UDIDs at all. Ad hoc needs every device registered, and Apple caps that at 100 per product family per membership year — a ceiling that does not move if you disable a device mid-year. If it is one or two people and you would rather not start a beta programme, collect their UDIDs and rebuild instead.
Yes — Go to question 3.
3.Do they need it in the next few minutes?
No — TestFlight is fine, and often better. If your testers are colleagues they are internal testers, and internal builds skip Beta App Review entirely — this is not the slow path people assume. You also get Apple's crash reports and feedback, and a rehearsal against App Review before you submit.
Yes — Use an OTA install link.
Choose TestFlight when
- You have more than 100 devices, or expect to.
- You do not want to collect a UDID from every tester.
- You want Apple's crash reports and in-app feedback.
- You want a rehearsal against App Review before you submit for real.
- Your testers are colleagues — internal builds skip review entirely.
Choose an OTA link when
- The device is provisioned and someone needs the build now.
- The tester will not install TestFlight, or has no Apple Account — a client usually has neither.
- You want a distinct link per branch or pull request.
- It is a one-off demo, not a beta programme.
- It is Android. TestFlight does not do Android at all.
The limits on both sides
| Limit | Applies to |
|---|---|
| 100 devices per product family, per membership year | Ad hoc / OTA links. Disabling a device mid-year does not return the slot. |
| Beta App Review on the first build | TestFlight external testers only. Internal testers skip it entirely. |
| 100 internal / 10,000 external testers | TestFlight. |
| TestFlight app + Apple Account required | TestFlight testers. An OTA link needs neither. |
| Builds expire | Both. A TestFlight build lasts 90 days; a BetaDrop link 3 days by default, up to a year or ten on paid plans. |
Sources, checked 13 September 2026: Apple — TestFlight overview and Apple — Devices overview. Apple changes these; if this page and Apple disagree, Apple is right.
Frequently Asked Questions
Should I use TestFlight or an OTA install link?
Three questions decide it. Do you have a signed build? If not, neither route works yet — both need a paid Apple Developer Program membership. Are the testers' devices already in your provisioning profile? If not, TestFlight is easier, because it needs no UDIDs. Do they need the build in the next few minutes? If yes and the devices are provisioned, an OTA link is faster. Everything else is detail.
Is TestFlight always slow?
No, and this is the most common misconception. Internal testers — up to 100 App Store Connect users on your own team — get builds with no Beta App Review at all, usually within minutes of processing. Review applies to external testers, and then only to the first build you send to them; later builds generally go out without a full review. If your testers are colleagues, TestFlight is not the slow option and the case for anything else is weaker than it looks.
When is an OTA install link genuinely better?
When the device is already in your provisioning profile and the person needs the build now — a client demo this afternoon, a QA hand-off mid-sprint, a per-branch build a reviewer wants to try. It is also better when the tester will not or cannot install TestFlight: they need the TestFlight app and an Apple Account, and a client who just wants to see your work often has neither. And it is the only option for Android, which TestFlight does not support at all.
What is the catch with ad hoc distribution?
The device has to be registered. Apple allows 100 devices per product family per membership year, the count does not go up if you disable a device mid-year, and it only resets when your membership renews. If a tester's iPhone is not in the profile the install fails, and the only fixes are to collect their UDID and rebuild, or to use TestFlight. That ceiling is the single strongest argument for TestFlight at any real scale.
Do my testers need an Apple Account?
For TestFlight, yes — they install the TestFlight app and accept the invitation with an Apple Account, and Managed Apple Accounts from reserved domains cannot be used to test builds. For an OTA install link, no: they open the link in Safari and install. That difference decides more real cases than any feature comparison, because it is the difference between sending someone a link and asking them to set up an account first.
Can I use both?
Most teams that ship seriously do. The common split is an OTA link for the daily build and for anyone outside the beta programme, and TestFlight for the release candidate and the wider external group — because the release candidate is the build you want rehearsed against App Review anyway. They are not mutually exclusive and nothing about using one prevents the other.
What if I have more than 100 testers?
Use TestFlight. Ad hoc cannot reach them — the 100-device registration limit is Apple's and there is no way around it — while TestFlight allows up to 10,000 external testers with no UDID collection at all. Anyone telling you otherwise is selling you something.
How long does an install link last?
On BetaDrop a link lives 3 days by default and the file is deleted when it expires rather than archived; paid plans extend that to a year or ten. A TestFlight build expires 90 days after upload. Neither is permanent, which matters if you were planning to treat either as the place a build lives.
If the answer was an install link
Upload the build and send the link. The first one needs no account. If the answer was TestFlight, go and use TestFlight — that is what this page is for.
Part of: Online IPA Installer