Do Closed Testers Have to Pay for a Paid App?
Testers must buy a paid app in a closed test, and the price applies to every track at once. What license testing removes from the bill, and what it leaves.
Bolt hands you a web URL or an Expo project, never an app bundle. Build the .aab, skip internal testing, then run the 14-day closed test with 12 testers.
Bolt.new runs entirely in your browser, so it cannot compile an Android binary. What it hands you is either a published web app at a bolt.host address, or an Expo (React Native) source project if you asked for a mobile app in your first prompt. Google Play needs a signed Android App Bundle instead: "Starting August 2021, new apps are required to publish with the Android App Bundle on Google Play." And if your Play account is a personal one created after November 13, 2023, Google adds a second gate on top of the format: "Developers with personal accounts created after November 13, 2023, must run a closed test for their app with a minimum of 12 testers who have been opted in continuously for at least 14 days."
One trap deserves warning about before anything else. Bolt's own Android instructions tell you to upload to the internal testing track first and then "go to Production" when you are ready. On a new personal account, Production is disabled until the closed-test requirement is met, and the testers you put on internal testing are locked out of your closed test until they opt out. Section five covers the fix, but the short version is: your first upload belongs on the closed testing track.
Bolt's help center describes the engine plainly: "Bolt runs on WebContainers, a browser-based technology built by StackBlitz that runs a full development environment directly in your browser." There is no Android SDK, no Gradle and no keystore inside that environment, which is why there is no "Download APK" button and never will be. Everything downstream depends on which of Bolt's two project types you have.
bolt.host address\" — plus a source ZIP on download. Route to Google Play: wrap the URL with Capacitor into an .aab, then closed test it.eas build --platform android produces the .aab directly — no wrapper.Bolt is blunt about the fork: "Projects created for web do not easily switch over to mobile." If a Play Store listing was part of the plan from day one, a web project you are now trying to convert is prompt-fighting you for every screen. Starting over with "mobile app" in the first prompt is usually cheaper than the conversion.
Bolt's list of publish targets includes "Android: Google Play Beta (for testing) and Google Play Store (for public access)." "Play Beta" there means Play Console's testing tracks, not a separate store — and which testing track you are allowed to use first depends entirely on your developer account type.
On the Expo path, Bolt's own documentation carries you most of the way. The prerequisites are "a computer with Node.js LTS and Git installed", an Expo account, and — for Android — "a Google Play Developer account". Then, in order:
npm install -g eas-cli, then eas login with your Expo account.npm install, then npx expo-doctor to catch setup problems before they become build failures.app.json: set the display name and the slug. Both are load-bearing; the slug is permanent after your first build.eas init, then eas build:configure to generate the build configuration.eas build --platform android, then "download the build file (APK or AAB) from the link provided in the CLI".One more check sits on the build itself, and its deadline has already passed: \"Starting August 31, 2026: New apps and app updates must target Android 16 (API level 36) or higher to be submitted to Google Play.\" An under-targeted bundle is refused at the upload screen, before the testing question ever comes up. A Bolt project scaffolded on an older Expo SDK can come out targeting less, so confirm the API level your build actually produced before you upload.
On signing, Bolt's troubleshooting section says only: "Check that all required certificates are set up in your Apple and Google Developer accounts. EAS can guide you through certificate setup." If this is your first Android build, let EAS manage the keys and keep the account you built from — the signing fingerprint is what ties every future update to this listing.
On the web-project path, the equivalent step is wrapping your bolt.host URL in a native shell. Capacitor is the standard tool, and the build commands are identical to wrapping any other web app — we wrote the full sequence in our guide to publishing a Lovable app to Google Play, and nothing in it is Lovable-specific. Both paths end at the same artifact: a signed .aab you can upload to Play Console.
Two, one from each side of the handoff, and AI-built projects walk into both because the builder never had a store listing in mind.
com.yourdomain.appname deliberately, because every update you ever ship has to wear it.Everything else on the Play Console side — store listing text, screenshots, content rating, countries — can be revised later. These two cannot, which is why they belong in the checklist before the first build rather than after the first rejection.
Because for a new personal account that sequence cannot reach Production at all. Bolt's Android steps are: "Set up internal testing: Go to Testing > Internal testing. Create a release. Upload your build file. Add email addresses of people you want to test the app." — and then "When ready for public release: In Google Play Console, go to Production. Create a release and upload your build." Google's requirement page closes that door: "Google Play requires personal developer accounts created after November 13, 2023, to test their apps before those apps are eligible for distribution on Google Play. Certain features in Play Console, such as Production (Test and release > Production) and Pre-registration, remain disabled until developers meet these testing requirements."
The second half of the problem is what happens to your testers. Google is explicit: "A user who opts into your app's internal test is no longer eligible to receive an open or closed test. To access an open or closed test, the user must first opt out of the internal test and then opt in to the open or closed test." Internal testing time does not count toward the 14 days, and every friend you collect there has to be walked through an opt-out before they can become one of your 12.
The order that works on a new personal account: closed testing track first, 12 testers opted in for 14 continuous days, apply for production access from the Dashboard, then Production. If you have already been turned down at the last step, our breakdown of production access rejections covers the reasons Google actually gives.
The mechanics are the same for a wrapped web app as for any native build — nothing about how the binary was produced changes the requirement. Three details decide whether your clock actually starts.
Engagement is the part that quietly sends Bolt-built apps back for more testing. Google lists "insufficient tester engagement during the testing period" among the reasons it requires a continued closed test. A freshly wrapped web app is exactly the shape that triggers it: testers open it once, recognize a website, and go quiet for the rest of the fortnight. Give testers two or three concrete tasks — create an account, run the main flow, change a setting — instead of "try it out". If your counter reads zero a day after sending invites, why Play Console says 0 testers opted in walks the seven causes in the order we check them.
A web shell of your own site is not automatically a policy problem, but it is not automatically safe either. Google's Spam policy targets a different animal: "We don't allow apps whose primary purpose is to drive affiliate traffic to a website or provide a webview of a website without permission from the website owner or administrator." You own the site, so the permission clause is not your risk. The rule that does apply is in the functionality policy: "We do not allow apps that only have limited functionality and content."
In practice that means the wrapped build should do at least one thing the browser version does not: a real offline screen instead of a dead WebView, local saved state, notifications, native navigation, camera or file access where the app plausibly needs it. Site chrome — headers, footers, "open in browser" banners — should be hidden inside the app rather than shipped as furniture. A reviewer should be able to find things in your app that Chrome on the same URL cannot do.
If your Bolt project shipped with sign-in, the reviewers and testers both need a way in. Add working demo credentials under App content, or expect a stall — we cover exactly what Google's App access section asks for in test credentials for reviewers.
Roughly three to four weeks for an account the 12-tester rule applies to. Based on our analysis of 1,500+ closed-testing campaigns, the calendar is dominated by the required window, not by the build, and the schedule breaks down like this:
.aab, complete the store listing, privacy policy, data safety form, content rating and target audience.Two things compress that: starting the closed test before the store listing is finished (the test does not require a finished listing, only a working build and a published release), and recruiting more than 12 testers up front, so a single dropout on day 9 does not restart anyone's count.
Can I publish a Bolt app to Google Play directly from Bolt? No. Bolt publishes to a bolt.host web address or hands you an Expo project; the upload to Play Console, the AAB, and the review all happen outside it.
Do I need Android Studio to publish a Bolt app? Not on the Expo path. Bolt's prerequisites list only "a computer with Node.js LTS and Git installed", an Expo account, and a Google Play developer account — the Android build runs on Expo's build service and you download the finished file. Android Studio is only unavoidable if you hand-build a native shell around a web project.
Does the 12-tester rule apply to my Bolt app? If your Play account is a personal one created after November 13, 2023, yes, and it applies no matter what produced the binary. If your account predates that date or is an organization account, check your Dashboard — the closed test requirement is scoped to new personal accounts.
Will Google reject my app because AI wrote it? No. Authorship is not a rejection category. What gets reviewed is policy compliance, functionality and stability — the same three things a human-written app is judged on.
Can the testers from my internal test become my 12? Only after they opt out of internal testing. Until then they are ineligible for the closed test, and the days they spent on the internal track count for nothing.
Is hosting my app at a bolt.host URL enough to be "on Google Play"? No. Google Play distributes app bundles, not URLs, and an add-to-home-screen prompt is not store presence. The URL is an ingredient in an app; it is not the app.
.aab, upload it to a closed testing track, and publish the release so the opt-in link appears.If recruiting and holding 12 testers for 14 continuous days is the part you cannot spare time for, that is the service we run: daily engagement monitoring and tester recruitment built specifically around this requirement, with plans on the pricing page.
Register, create the app and choose your tester count. Every plan includes the same monitoring, support and participation guarantee.