What you need before you start
- A signed AAB file downloaded from your Capwrapper dashboard (preferred over APK for Play Store submissions)
- A Google Play Developer account — there is a one-time $25 registration fee
- Your own release keystore (see below — the debug keystore will not pass Play Store validation)
Generate a release keystore
If you don’t already have a release keystore, run the following command using thekeytool utility that ships with any JDK installation:
.jks file and both passwords somewhere secure — you will need them for every future update to this app.
When configuring your next Capwrapper build, supply this keystore under Configuration > Signing so that the output AAB is signed with your release key.
Submit to Google Play
Log in to Google Play Console
Go to play.google.com/console and sign in with the Google account associated with your developer account.
Create a new app listing
Click Create app in the top-right corner. Choose a default language, enter your app name, select App or Game, and confirm it is free or paid. Then click Create app.
Fill in your store listing
Navigate to Store presence > Main store listing. Complete the required fields:
- Short description (up to 80 characters)
- Full description (up to 4,000 characters)
- At least 2 screenshots per required screen size
- A feature graphic (1024 × 500 px)
- App icon (512 × 512 px)
- Category and contact details
Set the content rating
Go to Policy > App content > Content rating and complete the questionnaire. Google requires all apps to have a rating before they can be published. The process takes about five minutes and results in an IARC rating being assigned automatically.
Set up pricing and distribution
Under Monetise > Pricing, set whether your app is free or paid. Under Distribution, select the countries where you want your app to be available.
Upload your signed AAB
Go to Release > Production (or Internal testing if you want to test first) and click Create new release. Upload your signed AAB file from your Capwrapper dashboard. Google Play will process the file and display the version code it detected.
Each new build submitted to the Play Store must have a higher
appVersion than the previous submission. Capwrapper derives the numeric version code from the appVersion field in your build config — increment it before every build you plan to publish.Common rejection reasons
Knowing why apps get rejected saves you a review cycle. The most frequent causes for Android rejections are:| Reason | How to avoid it |
|---|---|
| Version code not higher than previous submission | Increment appVersion in your Capwrapper build config before every build you submit |
| Policy violation | Review the Google Play Developer Program Policies before submitting, especially around permissions and data safety |
| Screenshots or description don’t match app content | Use real screenshots of your actual app; descriptions must accurately reflect functionality |
| Missing privacy policy | If your app collects any user data (including analytics), you must provide a publicly accessible privacy policy URL in the store listing and in the app itself |
| Incorrect or missing data safety form | Complete the Data safety section in Play Console honestly — it must match what your app actually collects |
