Skip to content
GetClosedTesting

Publish a Replit App to Google Play: AAB and 12 Testers

Replit's Agent now builds the signed .aab for you, but Play Console stays manual. What Replit's docs skip, and how to clear the 12-tester closed test.

Google Play Testing11 min read

Short answer: Replit builds the bundle, Play Console does the rest

A Replit mobile project is a React Native app, and Replit's documentation now includes an Android publishing section. You ask Agent to "Build a production release of [your app] for Google Play" and, in Replit's own words, "Agent runs a production build on Expo's servers and gives you a download link once it's ready, typically 10 to 15 minutes." That download is a signed Android App Bundle - the .aab file Google Play requires. What Replit does not do is put the app on Google Play: the upload, the store listing, the release track and the closed test are manual Play Console work.

If your Play Console account is a personal one created after 13 November 2023, that manual part decides your launch date, not your build. Google requires that you "run a closed test for their app with a minimum of 12 testers who have been opted in continuously for at least 14 days" before the Apply for production button appears on the Dashboard. This guide covers the path end to end: what Replit's Android documentation actually provides (and where its own pages disagree), how to get the .aab into Play Console without tripping the settings that cannot be changed later, and how the 14-day test works for an app built in a chat window.

What does Replit actually give you for Android?

Start with the project type, because it decides everything downstream. A Replit Mobile app project is React Native with TypeScript, previewed on your phone through Expo Go or in Replit's streamed Android simulator. If your project only ever opens in a browser tab, it is a web app and it needs a native wrapper before it can become an .aab - that route is covered in the FAQ below, and our Lovable guide walks the wrapping process step by step.

For stores, Replit's documentation currently contradicts itself. The native mobile apps overview page still states flatly: "Publishing to Google Play is not yet supported by Replit." Yet the Build section of the same docs site now carries a Publish for Android series - upload your app to Play Console, beta test with internal testing, submit to Google Play - describing the exact manual steps below, with Agent producing the production build. Both pages were fetched on 22 October 2026.

One more detail from the same docs matters if you are following an older walkthrough. Replit's mobile-app FAQ says "EAS CLI and EAS Build are not supported on Replit." Guides that tell you to run eas build --platform android are describing Expo's command-line tool on your own computer. Inside Replit, the supported path is the Agent prompt - the result is the same kind of artifact, a signed .aab compiled on Expo's servers.

How do you get the .aab out of Replit?

Replit's upload documentation reduces the build to one instruction: ask Agent to build a production release for Google Play. The build runs on Expo's servers, typically takes 10 to 15 minutes, and arrives as a download link; the same artifact is listed in your Expo dashboard under Builds. The file is the .aab.

Then Play Console, by hand:

  1. Download the .aab from the link Agent gives you.
  2. In Play Console, open your app, go to Test and release, then Testing, then Closed testing, and create a release on the closed track.
  3. Upload the .aab there. Not to internal testing - internal testing is a useful smoke test on real devices, but its days do not count toward Google's 14-day requirement.
  4. Complete the listing pieces Play Console requires before a track can go live: screenshots, feature graphic, description, content rating questionnaire, Data safety form and privacy policy URL.

Three failures are specific to this workflow, and all three appear in Replit's own troubleshooting notes:

  • The version code has to increase with every upload. Play Console rejects a second upload built from the same version code. Replit's note: "the version code has to increase with every upload. Ask Agent to bump it and rebuild." Each rebuild is another 10 to 15 minutes, so this is worth avoiding on a deadline.
  • A slow build is probably just queued. Replit: builds "are queued and typically take 10 to 15 minutes. Check your Expo dashboard under Builds before assuming something's broken."
  • On the first upload, let Google manage signing. When Play Console presents the app-signing choice, Replit's guidance matches Google's default: "let Google manage the signing key... it means Google can re-sign future uploads for you."

One testing consequence deserves its own warning. Replit's docs note that Expo Go "runs your code inside a shared preview app" while a build "is your app on its own, which is why features like push notifications and in-app purchases only work here." Anything you only ever tried in the Expo Go preview has not been tested in the app your testers will install. Walk the core flows in the built .aab before the 14 days start counting on it.

Which build decisions can you never change?

Two decisions harden the moment the first .aab reaches Play Console, and AI-assisted projects reach that moment without anyone in the chat window asking about Play Console.

  • The package name. Google's wording is absolute: "Once you upload an artifact, the package name for that app is fixed and cannot be changed." In an Expo project the Android package is configured before the build, so choose the final id first - something like com.yourdomain.app - and give it to Agent before requesting the production build.
  • The signing relationship. With Play App Signing, Google holds the app's signing key and your upload key only authorizes sends. This is the default Replit's docs point you to and the right choice; the fact to internalize is that the app's cryptographic identity now lives with Play, which is one more reason to settle the package name before the first upload, not after.

A third setting bites at upload rather than after it: the target API level. Since 31 August 2026, Google requires that "New apps and app updates must target Android 16 (API level 36) or higher to be submitted to Google Play" - phones and tablets; Wear OS and Android Automotive have a floor of 35, Android TV and Android XR a floor of 34. Ask Agent what the project targets before building. A bundle under the floor is rejected at upload no matter how well the app runs.

Does the 12-testers rule apply to a Replit app?

Yes. Google's requirement attaches to the developer account and the app, not to how the app was written: "Developers with personal accounts created after November 13, 2023, must run a closed test for their app..." Organization accounts, and personal accounts created on or before that date, sit outside the rule; Play Console's dashboard is what tells you which case you are in.

The Replit-specific trap is the track Replit's own docs describe first. The Publish for Android series walks through internal testing - testers get a plain link and install directly - and for a first smoke test on real devices that is genuinely useful. But Google's gate is a closed test, and Google defines the clock strictly: "Testers who opt in, test for fewer than 14 days, and then opt out do not count toward the requirement. If a tester opts out and opts back in later, the 14 days must be consecutive to count toward the minimum requirement of 12 continuous opted-in testers." Twelve people who sat on the internal track for three weeks buy you nothing toward production access.

Testers join the closed track through an email list or a Google Group, and each one counts only after opening the opt-in link and accepting the test themselves - an address on the list is an invitation, not an opt-in. We compare the two membership options in a separate guide.

How do you run the closed test from a Replit project?

The mechanics of the test are identical whether the app came from Android Studio or a prompt; what Replit changes is the update loop inside the two weeks.

That loop is Replit's real advantage here. When a tester reports a bug on day six, you describe it to Agent, take the fix, request a new production build, and upload it to the same closed track with a higher version code. Google's requirement is written around testers being "opted in continuously", and nothing in the published wording ties those 14 days to a single build - so shipping fixes mid-test is consistent with the requirement as written. This is our reading of Google's published wording, not a confirmation from Google.

Engagement is the part applications come back from. Google names its reasons directly: "Reasons for required continued testing include having fewer than 12 opted-in testers or insufficient tester engagement during the testing period." Based on our analysis of 1,500+ closed-testing campaigns, the failure pattern does not depend on what built the app - it is testers who install once and never open the app again, paired with an application that cannot say what those testers did. What works, in order: give every tester two or three specific things to try, keep their notes in writing as the days pass, and ship at least one visible fix that came from them. Our daily-usage explainer covers what Google does and does not require of testers day to day, and our uninstall article covers what happens when someone removes the app mid-test.

If the track shows zero opted in after you shared the link, nothing else in this article matters yet - that failure is on the opt-in side, and our 0-testers fix list walks through the seven causes in order.

From Replit project to live listing: how long does it take?

For an account the rule applies to, plan on three to four weeks from a finished Replit project to a live production listing. That is our estimate from closed-testing campaigns, not a Google figure, and the shape is:

  • Production build in Replit: 10-15 minutes per build - Expo's build queue, Replit's published figure.
  • Play Console setup: 1-3 days - store listing, privacy policy URL, content rating questionnaire, Data safety form.
  • Closed test: 14 continuous days, minimum - Google's requirement, counted per tester, not per build.
  • Production access review: usually 7 days or less - Google: "Review usually takes seven days or less, but can occasionally take longer."

Two moments stall people. If the Apply for production button has not appeared after 14 days, the causes are mundane and checkable - our button-missing guide lists them. When the button does appear, Google asks how you recruited testers, what they did, what feedback you collected and what you changed - answer from the notes you kept during the test, and see the form-questions walkthrough before you start typing. If the verdict is continue testing, the reasons Google publishes are the two quoted above, and the response is a stronger test rather than an appeal - our rejected-app guide covers what that cycle looks like.

Frequently asked questions

Can Replit publish my app to Google Play directly? No. Replit's store wizard targets the Apple App Store; for Google Play the current docs describe a manual path - Agent builds the .aab, you upload it and run the release yourself. Replit's overview page still says Play publishing "is not yet supported" while its Build docs document the manual steps; both statements stood on Replit's site when we checked on 22 October 2026.

Do I need Android Studio, a Mac, or the Android SDK? No. The production build runs on Expo's servers and returns a download link; you never touch a local Android toolchain. Expo's own CLI is explicitly "not supported on Replit" as workspace tooling - the Agent does the build instead.

My Replit project is a website, not a mobile app. Can I still publish it? Yes, but it is a different engineering task: the web app must be wrapped into a native shell and signed, and it is judged on stability like any other app. Our Lovable guide covers the Capacitor route step by step, and the same 12-tester rule applies to the wrapped result.

Does the 12-tester rule apply if I built my app with AI? Google's requirement says nothing about how the app was built. If your account is a personal one created after 13 November 2023, the closed test applies to your app like any other - what differs is only how fast you can ship the fixes the test asks for.

What if I only have ten testers who actually use the app? The requirement is 12 opted in continuously for 14 days, and "fewer than 12 opted-in testers" is one of the two reasons Google publishes for sending an application back to testing. Recruit above the minimum so one dropout does not put you under (our recommendation, not a Google figure).

Will Google treat a Replit-built app differently in review? There is no published distinction. What shows up is the ordinary bar: a stable pre-launch report, an accurate Data safety form, policy compliance, and the engagement record of the closed test.

Sources

Google's rules, from Play Console Help: app testing requirements for new personal developer accounts, target API level requirements, and set up an open, closed or internal test (which carries the fixed-package-name note).

Replit's own documentation: upload your app to Play Console, submit to Google Play, beta test with internal testing, and the native mobile apps overview that still says Play publishing is not yet supported. All documentation links above were fetched and verified on 22 October 2026.

Ready to Start Your Closed Test?

Register, create the app and choose your tester count. Every plan includes the same monitoring, support and participation guarantee.