AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Google Play Setup

skill-ampli-group-agentic-mobile-blueprint-google-play-setup · by Ampli-Group

Set up Google Play Console, create an Android app listing, configure EAS credentials for Android builds, and set up the service account for CI/CD submissions. Use when publishing a new Android app, setting up Play Store automation, or troubleshooting AAB uploads.

No reviews yet
0 installs
40 views
0.0% view→install

Install

$ agentstack add skill-ampli-group-agentic-mobile-blueprint-google-play-setup

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-ampli-group-agentic-mobile-blueprint-google-play-setup)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Google Play Setup? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Google Play Setup

Prerequisites

  • Google Play Console account ($25 one-time fee) at play.google.com/console
  • EAS CLI: npm install -g eas-cli && eas login

Required reading — Expo official guides:


Step 1: Configure Android Package Name

Set the package name in app.json before the first build — it cannot be changed after the app is published:

{
  "expo": {
    "android": {
      "package": "com.yourorg.appname"
    }
  }
}

Use reverse domain notation. Must be globally unique on Play Store.


Step 2: Create Play Console App Listing

  1. Go to play.google.com/consoleCreate app
  2. Fill in:
  • App name: Display name
  • Default language: English
  • App or game: App
  • Free or paid: your choice
  1. Accept policies → Create app

Note the Application ID from the URL: play.google.com/console/u/0/developers/.../app/XXXXXXXXXXXXXXXXXX/


Step 3: Complete App Setup Requirements

Google requires these before you can upload any build:

App content declarations (Play Console → Policy → App content):

  • [ ] Privacy Policy URL
  • [ ] Ads declaration
  • [ ] Content rating questionnaire (takes ~2 min)
  • [ ] Target audience
  • [ ] Data safety form (what data you collect — be honest)

Store listing (Play Console → Grow → Store presence → Main store listing):

  • [ ] Short description (80 chars)
  • [ ] Full description (4000 chars)
  • [ ] Screenshots: Phone (minimum 2), Tablet optional
  • [ ] Feature graphic: 1024×500 PNG
  • [ ] App icon: 512×512 PNG

None of this blocks the first upload but it does block publishing to users.

"Finish setting up your app" banner — Play Console shows this dashboard banner after app creation. It lists required items before you can publish. Work through them in order — all must be green before the app goes live. This is separate from the store listing itself.


Step 4: Configure EAS Credentials

cd mobile
eas credentials

Select Androidproduction → Let EAS manage the keystore (recommended).

EAS generates and stores the Android signing keystore. Never lose this keystore — you cannot update your app without it. EAS stores it encrypted.

To verify:

eas credentials --platform android

Step 5: First Build and Manual Upload

Google requires the very first AAB to be uploaded manually via Play Console. Subsequent uploads work via eas submit.

# Build the AAB
cd mobile
eas build --platform android --profile production

# Download the AAB when done
eas build:list --platform android
# Click the download link from the output, or:
eas build:download --platform android --latest

Upload manually:

  1. Play Console → ReleaseInternal testingCreate new release
  2. Upload the downloaded .aab file
  3. Add release notes → SaveReview releaseStart rollout

After this first manual upload, eas submit will work for all future releases.

Sharing the internal testing link — Unlike TestFlight (email invites), Google Play internal testing uses a shareable opt-in link. After rollout:

  1. Play Console → TestingInternal testingTesters tab
  2. Copy the opt-in URL and send it to testers
  3. Testers open the link on their Android device and click "Accept invitation"

They won't find the app by searching — they must use the link.


Step 6: Service Account for CI/CD

Required for non-interactive submissions from GitHub Actions.

Create service account:

  1. Play Console → SetupAPI access
  2. Click Link to a Google Cloud Project (or create new)
  3. In Google Cloud Console: IAM & AdminService AccountsCreate Service Account
  • Name: eas-submit
  • Role: Skip (add via Play Console)
  1. Click the service account → KeysAdd KeyCreate new keyJSON
  2. Download the JSON file

Grant Play Console permissions:

  1. Back in Play Console → SetupAPI access
  2. Find the service account → Manage Play Console permissions
  3. Grant: Release manager (minimum) or Admin
  4. Apply and save

Add to EAS:

# Option A: Store in eas.json (committed, less secure)
# Point eas.json submit profile to the file path

# Option B: Upload to EAS secrets (recommended for CI)
eas secret:create --scope project --name GOOGLE_SERVICE_ACCOUNT_KEY --value "$(cat service-account.json)"

Or store locally and reference in eas.json:

{
  "submit": {
    "production": {
      "android": {
        "serviceAccountKeyPath": "./google-services.json",
        "track": "internal",
        "releaseStatus": "draft"
      }
    }
  }
}

Step 7: Submit via EAS

After the first manual upload and service account setup:

eas submit --platform android --profile production --latest

This uploads to the internal testing track with draft status by default. You manually promote to production in Play Console.


Track Strategy

| Track | Who sees it | When to use | |-------|-------------|-------------| | Internal | Up to 100 testers (your team) | Every build for QA | | Closed testing (Alpha) | Invited users | Beta before launch | | Open testing (Beta) | Anyone who opts in | Public beta | | Production | All users | Launch |

Start with Internal track. Promote builds through tracks in Play Console — no rebuild needed.


Gotchas

"Package name already taken" — The package name is globally unique. Use a specific reverse domain.

Upload rejected: "Version code already used" — Always use appVersionSource: "remote" + autoIncrement: true in eas.json.

"You need to upload an AAB first" — You must manually upload the very first build. eas submit will fail until then.

Service account upload fails with 403 — The service account needs Release manager or Admin permissions in Play Console (not just Google Cloud IAM). Check Play Console → API access → service account permissions.

"App not found" during submit — The applicationId in eas.json must exactly match the package name in app.json and Play Console.

Data safety form blocks publishing — Fill it in Play Console → Policy → App content → Data safety. Must declare all data collected (Supabase auth = email/user ID, PostHog = device info).

First submission review takes 3–7 days — Build your buffer into the timeline. Subsequent updates usually review in hours.

Camera/microphone/location access requires a public Privacy Policy URL — Google will reject or unpublish apps that request sensitive permissions without a publicly accessible privacy policy. The URL must be reachable without login.

Data safety form blocks publishing — Fill it in Play Console → Policy → App content → Data safety. Must declare all data collected (Supabase auth = email/user ID, PostHog = device info, camera = photos if saved).

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.