How to Publish a Capacitor or Ionic App on Google Play
Build web assets, sync to Android, generate a signed bundle in Android Studio, and avoid the “minimum functionality” rejection for web-based apps.
Short answer
Build your web app, run npx cap sync android, open the android/ project in Android Studio (npx cap open android), set the version in android/app/build.gradle, then use Build → Generate Signed App Bundle. Make sure the app offers real app functionality, not just a wrapped website.
1. Prepare the web build
Run your framework’s production build (for example npm run build) so the output folder Capacitor uses (webDir in capacitor.config) is fresh.
2. Sync and open
- npx cap sync android copies web assets and updates native plugins.
- npx cap open android opens Android Studio.
3. Set IDs and versions
- appId in capacitor.config must match applicationId in android/app/build.gradle. It’s permanent once uploaded.
- versionCode and versionName in android/app/build.gradle. Increase versionCode for every upload.
- Check android/variables.gradle for compileSdkVersion and targetSdkVersion. Target API 36 has been required since August 31, 2026. Upgrading Capacitor usually updates these.
4. Generate a signed bundle
In Android Studio choose Build → Generate Signed App Bundle / APK → Android App Bundle, create or select your keystore, choose the release variant, and build. The .aab lands in android/app/release/ (or the path Studio shows). Keep the keystore backed up.
5. Avoid “minimum functionality” problems
Google Play’s policies require apps to provide a stable, engaging experience. Apps that only load a website in a WebView are a classic rejection risk. Strengthen yours with:
- Native features: push notifications, offline support, camera, share sheet, biometrics.
- Content that works without a network, or a graceful offline screen.
- Native-feeling navigation (no browser chrome, proper back button handling).
6. Capacitor gotchas
| Symptom | Fix |
|---|---|
| Old web build in the app | Run cap sync after every web build |
| Mixed content blocked | Use HTTPS APIs |
| Back button closes the app | Handle backButton events with the App plugin |
| Plugin crash in release | Add keep rules for reflection-based plugins |
After the bundle is built: same path for every app
- Create the app in Play Console and complete the store listing and App content. See does a closed test need a store listing.
- Upload the .aab to a closed testing track (internal first is optional). See upload your first AAB.
- Attach a tester list and publish. Share the opt-in link.
- On a new personal account: keep 12+ testers opted in for 14 days, then apply for production access.
Frequently asked questions
Do I need Android Studio for Capacitor?
You need the Android SDK. Android Studio is the easiest way to get it and to generate a signed bundle, though Gradle on the command line works too.
Can I use live reload in production?
No. Live reload is a development feature. Production builds must bundle your web assets inside the app.
How do I add push notifications?
Use Capacitor’s push notifications plugin with Firebase Cloud Messaging, and declare notification permission handling for Android 13+.
Sources and how we keep this accurate
- Android Developers: About Android App Bundles
- Google Play Developer Policy Center
- Capacitor docs: Deploying to Google Play
Policy facts are checked against Google's own documentation on the date shown above. Google can change requirements at any time, so confirm in your Play Console. Where we give advice or estimates rather than Google's rules, we say so. TestersZone is independent and not affiliated with Google. Drafts are AI-assisted and reviewed by our team.
Need 12 testers? Get them free.
Test 3 apps, earn 60 credits, and list your app for up to 20 real testers with verified daily check-ins.
Start freeKeep reading
How to Publish a PWA on Google Play With a Trusted Web Activity
10 Common Reasons Google Play Rejects Apps (and Fixes)
How to Upload Your First App Bundle to Play Console
How to Generate a Signed App Bundle in Android Studio
How to Publish a Godot Game on Google Play
How to Publish a FlutterFlow App on Google Play
Browse all guides, or see the quick answers, guides and comparisons.