gplay releases upload
Upload an AAB and attach it to a release on the given track.
Performs the full Edit lifecycle in one call: edits.insert → bundles.upload → tracks.update → edits.commit
Targeting production defaults to a draft release (ADR-0002) unless --complete or --staged is supplied. Any string is accepted as --track so closed-test tracks with custom names just work.
gplay releases upload <aab> [flags]| Flag | Description |
|---|---|
--complete | force the release status to completed (1.0 user fraction) |
--confirm | explicit confirmation required for production publishes (--complete / --staged on production) |
--draft | force the release status to draft |
--dry-run | validate inputs and preview the release payload without any HTTP call |
--keep-edit-on-failure | skip the auto-discard cleanup on failure (debug) |
--output string | output format: table, json, or markdown (default: auto — table on TTY, json in pipes/CI) |
--package string | Android package name (overrides .gplay/config.json pin) |
--release-notes string | release notes text (applied to the app's default language) |
--release-notes-dir string | directory of <locale>.txt files (with optional default.txt fallback) |
--staged float | start a staged rollout at this fraction (0 < f ≤ 1.0) |
--track string | target track (internal, alpha, beta, production, or any closed-track name) |
Global flags
Section titled “Global flags”| Flag | Description |
|---|---|
--account string | name of a stored Account to use (overrides env and active Account) |
--retry int | retry transient failures (transport errors, 5xx, 429) up to N times with exponential backoff (default: 0, no retry) |
--service-account string | path to a service-account JSON, or inline JSON content (overrides --account, env, and active Account) |
--timeout duration | per-request API timeout, e.g. 30s or 2m (default: 60s for control-plane calls, none for uploads) |
-v, --verbose | log flow steps to stderr (info level) |