How do I submit an Android app to Google Play for review?
Generate an upload key, build a signed Android App Bundle from mobile/android, and upload it in the Play Console. Google signs the delivered app with its own key, so your upload key is recoverable if lost. Budget most of the time for the store listing and the data safety form, not the build.
The build
bin/check
open mobile/android
Build a release App Bundle, not an APK. Play requires the bundle format for new apps, and it is what lets Google serve device-specific downloads.
Keep the upload keystore and its password somewhere durable. With Play App Signing, Google holds the key that actually signs what users install, so a lost upload key can be reset through support. That is a meaningful safety net and it only exists if you enrolled.
The listing is the long part
- Short and full description.
- Screenshots for phone, and for tablet if you declare support.
- A feature graphic.
- A privacy policy URL that resolves. Your app already serves one at
/terms. - The data safety form, declaring what you collect and why.
The data safety form is the one that gets rejections, because it has to match what your app actually does. If you use analytics, say so.
Test tracks first
Internal testing puts a build in front of a list of email addresses within minutes and does not require review. Use it to check the real signed artifact on a real device before anything goes to production. A bug that only appears in a release build is common enough to plan for.
The payment rule applies here too
Digital subscriptions must use Play Billing. The shells handle it through the marker paths declared
in config/routes.rb, and your server verifies the receipt through
app/adapters/play_store.rb. Showing a Stripe button inside the app is the rejection to avoid, and
hotwire_native_app? is how you avoid it.
Review times
Usually faster than Apple's, occasionally much slower for a new developer account. New accounts can also face an extended testing requirement before production access. Check the current rules when you create the account, because this has changed recently and affects your timeline more than anything in the build.