Google Play Store
Google’s review process is much friendlier than Apple’s, but it’s stricter than it used to be. This walks through getting a Mosayic-built Android app onto the Play Store.
Before you start
Section titled “Before you start”You need:
- A Google Play Developer account (one-time $25 fee). Sign up at play.google.com/console/signup.
- A Mosayic project with an Android dev build already working (if you can install the dev
.apkon your phone, you’re set). - A
google-services.jsonfile from Firebase if you’re using push notifications. See Push Notifications.
The high level
Section titled “The high level”Same shape as iOS:
- Build a production Android binary with EAS (
.aab— Android App Bundle) - Upload it to Play Console
- Configure the Play Store listing
- Promote through testing tracks (internal → closed → open or directly to production)
- Submit for review
- Wait a few hours to a few days
- Live, or fix what was flagged and re-submit
Step 1 — Create the app in Play Console
Section titled “Step 1 — Create the app in Play Console”- Go to play.google.com/console and sign in.
- All apps → Create app.
- Fill in:
- App name: your app’s display name
- Default language: English (US) for most
- App or game: App
- Free or paid: typically Free
- Confirm both declarations (developer policies, US export laws)
- Click Create app.
Step 2 — Production build with EAS
Section titled “Step 2 — Production build with EAS”From your mobile/ folder:
eas build --profile production --platform androidProduction Android builds produce a .aab (Android App Bundle), which is what Play Store wants. The dev profile produces .apk files for sideloading.
The first time, EAS asks if it should manage your signing keystore. Say yes unless you have a strong reason otherwise. EAS-managed keystores are backed up automatically and accessible across machines.
Step 3 — Upload to Play Console
Section titled “Step 3 — Upload to Play Console”The easiest path is EAS Submit:
eas submit --profile production --platform android --latestThe first time, EAS asks for a Play Console service account JSON. To create one:
- In Play Console, go to Setup → API access.
- Click Create new service account. This jumps you to Google Cloud Console.
- Create a service account, then create and download a JSON key for it.
- Back in Play Console, grant the new service account access to your app.
- Paste the JSON into the EAS prompt.
This is a one-time setup. Subsequent eas submit runs use the saved credentials.
Alternatively, upload manually:
- Download the
.aabfrom the EAS build page. - In Play Console, go to Production → Create new release (or one of the testing tracks first).
- Upload the
.aab. - Enter release notes.
- Click Save and review.
Step 4 — Use testing tracks
Section titled “Step 4 — Use testing tracks”Play has four tracks:
| Track | Audience | Review |
|---|---|---|
| Internal testing | Up to 100 testers, fast | None |
| Closed testing | Specific groups | Light review |
| Open testing | Anyone with the link | Full review |
| Production | Public | Full review |
Always test internally first. The flow:
- Upload your build to Internal testing.
- Add testers (their Google account email addresses).
- Send them the opt-in URL Play Console gives you.
- They install via the URL → Play Store opens → install.
- Catch any crashes or regressions before promoting to Production.
Step 5 — Configure the listing
Section titled “Step 5 — Configure the listing”Under your app in Play Console, work through the Set up your app checklist on the left:
- App access — does anything require login? (Yes, for most Mosayic apps — provide a test account)
- Ads — does your app contain ads? (Usually No for Mosayic apps)
- Content rating — fill out the questionnaire to get a rating
- Target audience — minimum age. Affects what data you can collect.
- News app — almost certainly No
- COVID-19 contact tracing — almost certainly No
- Data safety — Google’s data-collection questionnaire (similar to Apple’s App Privacy)
- Government apps — almost certainly No
- Financial features — only if you handle payments yourself (Stripe in your app, etc.)
- App category — pick a category and tags
Then under Main store listing:
- App name
- Short description (80 chars)
- Full description
- App icon (512×512 PNG, with all alpha channels removed)
- Feature graphic (1024×500 PNG — appears at the top of your store page)
- Phone screenshots (at least 2; up to 8)
- Privacy policy (URL — required)
Step 6 — Promote to production
Section titled “Step 6 — Promote to production”Once the listing is complete:
- Production → Create new release (or promote a tested build from a lower track).
- Add release notes.
- Review release → Start rollout to Production.
You can roll out to a percentage of users first (e.g. 10%, then 50%, then 100%) — useful for de-risking big releases.
Review and approval
Section titled “Review and approval”First-time submissions can take 3-7 days. Updates are typically a few hours.
Common issues:
- Missing privacy policy URL. You’ll be flagged immediately. Fix and re-submit.
- Targeting the wrong API level. Play requires you target the latest-but-one Android API. EAS handles this if you keep your Expo SDK current.
- Permissions you don’t use. Same as iOS — declare what you actually use. Google flags this less aggressively than Apple but still does.
- Data safety mismatches. If you say you don’t collect data but your app sends it to Supabase, that’s a mismatch. Be honest in the form.
Updates
Section titled “Updates”Future updates:
eas build --profile production --platform androideas submit --profile production --platform android --latestThen go to Play Console, find the new build under your chosen track, add release notes, roll out.
If you’ve configured the eas-build-on-tag.yaml GitHub Action, just pushing a v* tag does both steps automatically.