Quick Start
This guide walks through the five most common GPC operations in under 5 minutes: authenticate, upload, promote, check vitals, and monitor reviews.
Prerequisites
- GPC installed (Installation)
- A Google Play Developer account
- A service account JSON key file with Play Console access (Authentication has full setup steps)
Step 1: Authenticate
Set up authentication with a service account key file:
gpc auth login --service-account /path/to/service-account-key.jsonExpected output:
Authenticated as play-deploy@my-project.iam.gserviceaccount.com
Profile "default" savedVerify authentication is working:
gpc auth statusExpected output:
Profile: default
Identity: play-deploy@my-project.iam.gserviceaccount.com
Method: service-account
Token: valid (expires in 58 minutes)
Scopes: https://www.googleapis.com/auth/androidpublisherStep 2: Set Your Default App
Configure a default app package name so you do not need to pass --app on every command:
gpc config set app com.example.myappExpected output:
Config updated: app = com.example.myappVerify your full configuration:
gpc config showExpected output:
app: com.example.myapp
profile: default
output: table (auto)Step 3: Upload a Release
Upload an AAB file to the internal testing track:
gpc releases upload app-release.aab --track internalExpected output:
Uploading app-release.aab (24.3 MB)
████████████████████████████████ 100%
Upload complete
Version code: 42
Track: internal
Status: completedTo upload and set release notes in one command, use publish:
gpc publish app-release.aab --track internal --notes "Bug fixes and performance improvements"Expected output:
Uploading app-release.aab (24.3 MB)
████████████████████████████████ 100%
Upload complete
Version code: 42
Track: internal
Status: completed
Notes (en-US): Bug fixes and performance improvements
Edit: committedStep 4: Promote to Beta
Promote the release from internal testing to the beta track:
gpc releases promote --from internal --to betaExpected output:
Promoted version 42
From: internal
To: beta
Status: completedTo promote to production with a staged rollout:
gpc releases promote --from beta --to production --rollout 10Expected output:
Promoted version 42
From: beta
To: production
Rollout: 10%
Status: inProgressIncrease the rollout later:
gpc releases rollout increase --track production --to 50Expected output:
Rollout updated
Track: production
Version: 42
Rollout: 10% -> 50%
Status: inProgressComplete the rollout to 100%:
gpc releases rollout complete --track productionExpected output:
Rollout completed
Track: production
Version: 42
Rollout: 100%
Status: completedStep 5: Check Vitals
View crash rate and ANR metrics for your app:
gpc vitals overviewExpected output:
Vitals Overview — com.example.myapp
Metric Value Threshold Status
Crash rate (user) 0.82% 2.00% OK
ANR rate (user) 0.15% 0.47% OK
Cold startup (p50) 812ms — —
Warm startup (p50) 340ms — —
Slow frames 4.2% — —
Excessive wakeups 0.1% — —Check crash clusters for a specific version:
gpc vitals crashes --version 42Expected output:
Crash Clusters — com.example.myapp (version 42)
Cluster Count Rate
NullPointerException at MainActivity:42 127 0.31%
OutOfMemoryError at ImageLoader:88 43 0.10%Use vitals as a CI quality gate (exits with code 6 if threshold is breached):
gpc vitals crashes --threshold 2.0If the crash rate is below 2.0%, exit code is 0. If it exceeds 2.0%, exit code is 6.
Step 6: Monitor Reviews
List recent reviews:
gpc reviews listExpected output:
Reviews — com.example.myapp
Stars Date Language Review
★★★★★ 2026-03-08 en-US Great app! Love the new update.
★★☆☆☆ 2026-03-07 en-US Crashes on startup since last update.
★★★★☆ 2026-03-07 ja-JP 使いやすいです。Filter to low-rated reviews from the last 7 days:
gpc reviews list --stars 1-2 --since 7dExpected output:
Reviews — com.example.myapp (1-2 stars, last 7 days)
Stars Date Language Review
★★☆☆☆ 2026-03-07 en-US Crashes on startup since last update.
★☆☆☆☆ 2026-03-05 de-DE Stürzt immer ab.Reply to a review:
gpc reviews reply abc123def456 "Thank you for the feedback. We have fixed the crash in version 43."Expected output:
Reply sent to review abc123def456Interactive Mode
When you omit required options on write commands, GPC prompts you interactively:
# No --track specified — GPC asks which track to use
gpc releases upload app.aab
# ? Select track: (Use arrow keys)
# internal
# > beta
# alpha
# production
# Destructive commands prompt for confirmation
gpc subscriptions delete premium_monthly
# ? Delete subscription "premium_monthly"? This cannot be undone. (y/N)To skip all prompts (required in CI), use the --yes flag or set the environment variable:
gpc releases upload app.aab --track beta --yes
# or
GPC_NO_INTERACTIVE=1 gpc releases upload app.aab --track betaDry Run
Preview what a write command would do without making any changes:
gpc releases upload app.aab --track beta --dry-run[dry-run] Would upload app.aab (24.3 MB) to track "beta"
[dry-run] Version code: 43
[dry-run] No changes were madegpc releases promote --from beta --to production --dry-run[dry-run] Would promote version 43
[dry-run] From: beta
[dry-run] To: production
[dry-run] No changes were madeThe --dry-run flag is available on all write commands (upload, promote, create, update, delete, sync).
Full Workflow in CI
Combine these steps into a CI pipeline:
#!/bin/bash
set -euo pipefail
# Authenticate (service account JSON stored as CI secret)
gpc auth login --service-account "$GPC_SERVICE_ACCOUNT_JSON"
# Set the app
gpc config set app com.example.myapp
# Upload to internal track
gpc publish app-release.aab --track internal --notes "Build $CI_BUILD_NUMBER"
# Check vitals before promoting (exit code 6 = threshold breach)
gpc vitals crashes --threshold 2.0
gpc vitals anr --threshold 0.47
# Promote to production with staged rollout
gpc releases promote --from internal --to production --rollout 10
# Get status in JSON for downstream processing
gpc releases status --output jsonNext Steps
- Authentication -- Full guide to all 4 auth methods and Play Console setup
- Configuration -- Config files, environment variables, and profiles
- Commands -- Complete command reference
- CI/CD Integration -- GitHub Actions, GitLab CI, and more