Prerequisites
Have the following ready before starting your Android production build:- Google Play Developer account — a one-time $25 registration fee at play.google.com/console.
- Bundle identifier — a unique reverse-domain ID (for example,
com.yourcompany.appname) set in yourapp.json. This becomes your app’s permanent package name and cannot be changed after publishing. - App signing — Google recommends Play App Signing, where Google manages your release key. You generate an upload key and Google signs the final binary.
- App icon — a 512×512 PNG for the Play Store listing. Openv2 can generate or upload your icon and write it to the correct paths in your project (see Mobile builds).
- Privacy policy URL — required if your app collects personal data. Host it at a public URL before submitting.
Create your app in Play Console before uploading a build. You’ll need to complete the store listing, content rating, and data safety sections before your app can go live.
Build your Android binary in Openv2
Open the build flow
From the header of your project, select the Build action to open the Expo build wizard.
Select Android
Choose the Android path. Then choose your output format:
- AAB — required for Play Store production submissions and most updates
- APK — useful for direct device installs, side-loading to testers, or internal testing without going through Play Console
Configure version numbers
Before building, confirm your
versionCode and versionName in app.json. Play Console rejects uploads with a versionCode equal to or lower than any previously uploaded build. Increment versionCode by at least 1 for every new upload.Complete the build
Follow the wizard’s remaining prompts. The modal tracks build status. If a native dependency error appears, fix it with help from the AI assistant and restart the build.
Upload to Play Console
Go to a testing track
In Play Console, navigate to your app and select a release track — Internal testing, Closed testing, or Open testing — before going to production. Internal testing is available immediately and is the fastest way to verify your build works.
Create a new release
Click Create new release, upload your AAB, and add release notes. If you’re using Play App Signing, Play Console handles the final signing step.
Complete required sections
Play Console won’t let you roll out to production until you complete:
- Data safety — declare what data your app collects and how it’s used
- Content rating — complete the questionnaire to receive an age rating
- Store listing — short description, full description, feature graphic, and at least two screenshots per supported device type
Testing tracks
Use testing tracks to distribute builds before going to production:| Track | Who can access | Review required |
|---|---|---|
| Internal testing | Up to 100 team members | No |
| Closed testing | Invited testers (email list or link) | Brief Google review |
| Open testing | Anyone (public opt-in) | Brief Google review |
Common issues
Target SDK version
Google Play requires apps to target a recent Android API level. If your build targets an outdated SDK, Play Console will warn you or block the release. Ask the AI assistant to update thetargetSdkVersion in your Expo config if needed.
Permissions declarations
Every Android permission your app requests must be justified. Play Console may ask you to explain why your app needs sensitive permissions like location, camera, or microphone. Remove any permissions your app doesn’t actually use.Content rating
You must complete the content rating questionnaire in Play Console. Providing inaccurate answers can result in removal. Answer based on your app’s actual content and functionality.versionCode conflicts
Each upload to Play Console must have a higher versionCode than all previous uploads for that app. If a build is rejected for this reason, increment the versionCode in app.json and rebuild.
What comes next
Mobile builds
Understand the full build flow, app icon setup, and how to resolve native dependency issues.
App Store
Publish your iOS build to the Apple App Store alongside your Android release.
