Beta distribution
Putting a pre-release build on real testers' phones through TestFlight or a Play testing track, before anyone in the store sees it.
See it
What it is
Beta distribution is the official channel for putting an unreleased build on real phones. On iOS that is TestFlight: internal testers (people on your App Store Connect team, capped at 100) get builds within minutes, while external testers (up to 10,000, invited by email or a public link) need a light beta app review first. On Android it is Play Console testing tracks: internal, closed, and open, each with a different audience size and approval cost. Firebase App Distribution and ad hoc builds cover the cases where you want no store involved at all.
Reach for it any time a build needs eyes before it needs customers: dogfooding with your team, a design review on a real device, a paid beta cohort, or letting a store reviewer's complaint get verified before you resubmit. It is also the only sane way to test purchases, push notifications, and deep links, since those behave differently outside a simulator.
Gotchas worth knowing up front: TestFlight builds expire after 90 days and testers get nagged to update; external TestFlight groups need that beta review on the first build of each version, so 'invite the beta list' is not instant; and Play's closed tracks tie testers to Google accounts, not email addresses, which is the number one reason someone swears the invite is broken.
Ask AI for it
Set up beta distribution for my app on both platforms. On iOS, upload the build to TestFlight, create an internal group for the team and an external group with a public invite link, and fill in the 'What to Test' notes plus beta review information. On Android, publish the same release to a Play Console internal testing track with a tester email list, then promote it to closed testing. Automate both from CI so a tagged commit builds, signs, increments the build number, uploads, and notifies testers in one run.