TestFlight and Internal Testing
Getting builds in front of real testers in under a day.
TestFlight on iOS, Internal Testing on Play Console. Both let you ship a build to up to 100 testers without store review. Both want a few metadata fields filled in before they'll accept a build. Get this configured once and subsequent uploads are minutes.
App Store Connect: register the app
Bundle ID, name, default language. The bundle ID must match your app.json identifier exactly.
// app.json { "expo": { "ios": { "bundleIdentifier": "com.tipjar.app" }, "android": { "package": "com.tipjar.app" } } }VerifyApp listed in ASC; same identifier on both platforms is a sanity-saver.Submit to TestFlight
EAS Submit handles the upload. After upload, Apple does an automated review (usually <30 min) before the build is testable.
eas submit --platform ios --latestVerifyBuild appears in TestFlight under Builds; status flips from Processing to Ready to Test.Add testers
External testers need the app's review approved once; internal testers (same Apple Developer team) can install immediately.
# Add testers in App Store Connect → TestFlight → Internal TestingVerifyTesters receive an email with the install link.Same flow for Android Internal Testing
Play Console → Testing → Internal testing. Upload an .aab via EAS Submit; add testers' Google accounts.
eas submit --platform android --latestVerifyTesters install via the Play Store opt-in link.