App Store

    How long does TestFlight review take, internal vs external?

    An App Store Connect TestFlight tab showing an internal group already marked Ready to Test next to an external group still stuck on Waiting for Beta Review

    A build finishes uploading, the badge in App Store Connect flips to Ready to Test for one column, and the other column still reads Waiting for Beta Review the next morning. That split is the difference between internal TestFlight and external TestFlight, and it shapes how a team plans a release week.

    Short answer

    Internal TestFlight testers, up to 100 App Store Connect users on your team, see any processed build within minutes, with no Beta App Review at all. External testers, up to 10,000 invitees per app, only see builds that have passed Beta App Review. Runway's public review-time tracker put that wait around seven to nine hours plus a short in-review window as of May 2025, though Michael Tsai's running coverage shows multi-day delays during heavy release periods.

    What you should know

    • Internal builds skip Beta App Review entirely. They are available to your App Store Connect team as soon as Apple finishes processing the build, per Apple's TestFlight overview.
    • External builds need Beta App Review for the first build of a new version. Apple's external tester invite guide states this directly.
    • Subsequent builds inside the same version usually go through with no full review, which is why teams stage features under a single version when they want fast iteration.
    • Build processing alone takes about 25 minutes on average, per Runway's tracker, before any review wait starts counting.
    • Apple caps new build submissions at six per app per 24 hours, which becomes the real bottleneck on heavy iteration days.
    • Each approved build expires after 90 days, so a long-running beta needs a refresh cycle planned in.

    What is the actual time gap between internal and external TestFlight?

    The short answer is that internal is on the order of minutes after processing, and external is on the order of hours, sometimes days. Apple's TestFlight overview describes internal testers as members of your development team and explains that builds shared with internal-only groups do not need Beta App Review. Once Apple's processing layer finishes, which takes about 25 minutes on average according to Runway, the build is visible in the TestFlight app on every internal tester device that has push notifications enabled.

    External testers follow a different path. Apple's invite-external-testers help page is explicit: the first build of a version sent to an external group is sent to Beta App Review, which checks the build against the App Store Review Guidelines. Runway, which aggregates timing telemetry across many teams, reported a Waiting for Beta Review average of 7h 41m and an In Beta Review average of 1h 37m as of May 12, 2025. Treat those numbers as a typical window, not a contract. Michael Tsai's blog tracks individual developer reports, including a ten-day macOS TestFlight wait from Craig Hockenberry in May 2025 and similar multi-day delays reported in July and August.

    Here is how the two paths compare in practice.

    StepInternal TestFlightExternal TestFlight
    Tester cap100 App Store Connect users10,000 invitees per app
    Apple Account requiredYes, for every internal userNo, email or public link works
    Build processingAbout 25 min average (Runway)About 25 min average (Runway)
    Beta App ReviewNot requiredRequired for first build of a version
    Typical wait, first buildMinutes after processingAbout 7h waiting plus 2h in review (Runway, May 2025)
    Worst case reportedSame as processing10+ days during slow periods (Tsai blog)
    Subsequent builds, same versionSame minutes windowOften no review, near-instant after processing

    Why does external TestFlight sometimes take longer than App Store Review?

    This is a complaint that comes up consistently among iOS developers, and the data backs it. Runway's same May 2025 snapshot put App Store Review at 9h 48m waiting and 1h 58m in review for a production release, and Beta App Review at 7h 41m and 1h 37m. The two queues are similar on the average day. The reason TestFlight feels slower is that bug-fix urgency is high, and developers expect a beta channel to be fast. Luc Vandal observed in July 2025 on Michael Tsai's blog that TestFlight builds can take longer to approve than App Store releases, which makes the channel impractical for urgent bug fixes during a feature freeze.

    The mechanism behind that pattern is that Beta App Review appears to be staffed similarly to App Review and prioritized alongside it. Apple does not publish queue depth or staffing per channel, so any specific ratio is inference, but the directional pattern from developer reports is consistent: when App Review is slow, Beta App Review is at least as slow.

    When does an external TestFlight build skip review?

    Apple sends a build to Beta App Review when one of two things happens. The first build of a new version always goes to review, per the external tester help page. After that, additional builds with the same version number can be added to the external group with no review, which is why production guidance suggests freezing the version string while iterating on bug fixes.

    A separate path triggers a re-review even on the same version: changing what the build can do in ways that touch the review surface. Adding a new tracking SDK that requires App Tracking Transparency, requesting a permission that needs a new Purpose String, or changing the app icon and metadata in ways that affect public-facing review can move a same-version build back into the queue. Apple's documentation does not enumerate this list, so the pattern is best treated as directional based on developer reports.

    The TestFlight Internal Only flag on a build is a hard switch. A build marked Internal Only in App Store Connect cannot be added to any external group, ever. The flag is useful for builds that contain debug menus or staging server URLs that should never reach a public tester, and it is set at upload time.

    How does Beta App Review actually compare to App Store Review?

    Both reviews run against the App Store Review Guidelines, but the scope is narrower for TestFlight. Apple's TestFlight overview describes Beta App Review as a check that the build is functional and meets the basic requirements for external testing. In practice this means catastrophic crashes, missing test information, missing Purpose Strings for sensitive permissions, content policy concerns, and obvious guideline violations. It does not include the full marketing review that the App Store version receives (metadata, screenshots, age rating disputes).

    The required metadata is also narrower. App Store Connect requires test information (feedback email, contact info, what to test) before the build can be submitted for Beta App Review, but it does not require localized screenshots or release notes. The full list is in Apple's external tester help page.

    Two things to keep in mind. A Beta App Review rejection is different from an App Store rejection, but the reasons (Guideline 5.1.1 privacy, Guideline 2.1 functionality, Guideline 2.5 software requirements) come from the same guidelines book. Fixing the rejection unblocks both channels at once.

    What slows external Beta App Review down in practice?

    Three patterns show up over and over in pre-submission audits and developer reports.

    The first is missing or weak test information. The What to Test field is required, and reviewers use it to know what to exercise. Builds with a placeholder ("test the app") tend to get pushed back to the queue, which adds another waiting cycle. Detailed, scenario-level test notes (sample login, demo data, link to a private test page) consistently correlate with faster turnarounds.

    The second is permission and Purpose String drift. A new build that requests photo library access, location, contacts, or microphone without a clear, user-facing Purpose String fails Beta App Review the same way it would fail App Review. Every permission triggers a Purpose String check, and a missing one is grounds for rejection.

    The third is third-party SDKs that change Privacy Manifest requirements. Apple's Privacy Manifests documentation lists the SDKs that must declare a PrivacyInfo.xcprivacy file as of May 2024. Adding one of those SDKs (or updating to a version that newly tracks required reasons) without updating the Privacy Manifest is increasingly cited as a reason for both Beta App Review and App Review delays. A pre-submission scan, whether internal or external, catches this before the build hits Apple's queue. PTKD.com (https://ptkd.com) is one of the platforms that runs this Privacy Manifest and OWASP MASVS check against an IPA before it goes up.

    How do you plan a release week around these timelines?

    A practical default that survives most release cycles: submit the first build of a new version to external TestFlight at the start of a workday, mid-week. Friday submissions show notably longer waits in Runway's tracker (17h 17m waiting on average versus 9h 44m on Tuesday for App Review, and the same weekday skew applies to Beta App Review). The earlier in the day and the earlier in the week, the faster the first turn tends to be.

    Inside that same version, keep iterating with non-significant builds. Mark each new build as having no significant changes if the changes are bug fixes and copy tweaks; that flag is what tells App Store Connect not to send the build back through Beta App Review. Save the significant-change flag and the version bump for when behaviour or capabilities genuinely change. The mistake many teams make is bumping the version on every build out of habit, which forces a fresh Beta App Review every time.

    What to watch out for

    A few common myths and traps:

    • The myth that TestFlight Beta App Review is fully automated. It is reviewed by humans, the same way App Review is, and that is why it tracks the same weekday and weekend rhythm in the Runway data.
    • The myth that internal testers see every build. They see builds in groups they are added to, on devices where TestFlight is installed and signed in to the right Apple Account, with notifications enabled. A "missing" internal build is almost always a group assignment or notification issue, not a review issue.
    • The 90-day build expiry. A build that was approved and tested for two months becomes unavailable two months later. Long-running betas need a recurring rebuild and resubmission plan.
    • The six-builds-per-24-hours cap. Repeatedly submitting and pulling builds during a frantic afternoon hits the limit and locks out further submissions for hours. Apple's external tester help page calls out the cap directly.
    • The Internal Only flag. Once a build is processed as Internal Only, it cannot be promoted to external. Plan the flag before upload, not after.

    Key takeaways

    • Internal TestFlight is minutes; external TestFlight is hours on a good day and days on a bad one. Treat the two channels as different release tools, not as a single button.
    • Beta App Review and App Store Review run on similar queues. When one is slow, the other tends to be slow too.
    • Lock the version string for the duration of an iteration cycle and use the no-significant-changes flag. That is the single setting that shortens external rollout time the most.
    • Submit first-of-version builds early in the week and early in the day. The Runway data is consistent on the weekday and time-of-day effect.
    • Some teams treat a pre-submission scan as a routine step before the first external build of any new version. PTKD.com (https://ptkd.com) is one of the platforms that runs an OWASP MASVS-aligned check on the IPA, surfacing Privacy Manifest gaps, permission strings without justification, and exposed secrets before the build reaches Apple's queue.
    • #testflight
    • #beta-app-review
    • #app-store-connect
    • #ios
    • #app-review-times
    • #external-testing
    • #internal-testing

    Frequently asked questions

    Does an internal TestFlight build need any kind of Apple review?
    No. Apple's TestFlight overview help page is clear that builds shared only with internal groups do not go through Beta App Review. The internal channel is available to your App Store Connect team as soon as the build finishes processing, which Runway's tracker puts at around 25 minutes on average. Internal-only builds can carry debug menus and staging URLs that would not be acceptable in a public TestFlight.
    How long does the first external TestFlight Beta App Review usually take?
    Runway's review-time tracker reported a Waiting for Beta Review average of 7 hours 41 minutes and an In Beta Review average of 1 hour 37 minutes as of May 12, 2025. Most teams should plan on roughly nine to twelve hours from submission to external availability on a typical mid-week day, with longer waits on Fridays and during heavy release periods around major iOS launches.
    Why did Apple put my TestFlight build back into review even though I did not change the version?
    Some changes trigger a re-review even on a same-version build. Adding a tracking SDK that surfaces App Tracking Transparency, requesting a permission that needs a new Purpose String, or changing what the build does in ways that touch the App Store Review Guidelines can move a build back into Beta App Review. Apple does not publish the exact list, so treat developer reports of this behaviour as directional.
    Can I move a TestFlight build from internal to external testing later?
    Not if the build was marked TestFlight Internal Only at upload. That flag is a hard switch in App Store Connect: an internal-only build cannot be added to any external group. To take the build external, upload a new build with the flag off, add it to the external group, and go through Beta App Review. The version number can stay the same if no other significant changes happened.
    How many TestFlight builds can I submit in 24 hours?
    Apple's external tester help page caps it at six new builds per app per 24 hours, and only one build per version can be in Beta App Review at a time. The cap usually only matters during a frantic bug-fix cycle, where pulling and resubmitting four or five builds in an afternoon will lock out further submissions for hours. Planning each build before upload avoids the cap entirely.

    Keep reading

    Scan your app in minutes

    Upload an APK, AAB, or IPA. PTKD returns an OWASP-aligned report with copy-paste fixes.

    Try PTKD free