CommunityCodierung & Entwicklunggithub.com

PollyGlot/google-play-cli

gplay: Veröffentliche auf Google Play von CI oder einem Coding-Agenten. Ein einziges statisches Binary, JSON-Ausgabe, die die Play Developer API wortwörtlich abbildet, semantische Exit-Codes. Ersetzt Fastlane supply.

Was ist google-play-cli?

Dieses Skill ermöglicht es Entwicklern und KI-Agenten, APKs und App-Bundles direkt von CI/CD-Pipelines oder Coding-Agenten wie Claude Code, Cursor oder Codex auf Google Play zu veröffentlichen. Es bietet ein einzelnes statisches Binary (`gplay`), das JSON-Ausgaben im exakten Format der Play Developer API liefert und semantische Exit-Codes verwendet – ideal für automatisierte Workflows und Fehlerbehandlung. Im Gegensatz zu Fastlane supply benötigt es keine Ruby-Umgebung und keine komplizierte Konfiguration: Einfach die Service-Konto-JSON-Datei bereitstellen, den App-Pfad angeben und loslegen. Das Tool unterstützt schrittweise Rollouts, interne und geschlossene Testtracks und kann nahtlos in Skripte, CI-Systeme oder Agenten integriert werden.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add PollyGlot/google-play-cli

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht google-play-cli?

gplay: Veröffentliche auf Google Play von CI oder einem Coding-Agenten. Ein einziges statisches Binary, JSON-Ausgabe, die die Play Developer API wortwörtlich abbildet, semantische Exit-Codes. Ersetzt Fastlane supply.

Installation

Lade das neueste Binary von den Releases herunter:

# macOS / Linux
curl -L -o gplay https://github.com/PollyGlot/google-play-cli/releases/latest/download/gplay-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m)
chmod +x gplay
sudo mv gplay /usr/local/bin/

# Überprüfen
gplay --version

Voraussetzungen

  1. Google Play Console Konto mit Zugriff auf eine App.
  2. Google Cloud Service-Konto mit aktivierter Play Developer API.
  3. Service-Konto-Schlüssel (JSON-Datei) mit der Rolle "Editor" im Play Console.

Verwendung

# Basis-Befehl (alle Parameter erforderlich)
gplay upload \
  --service-account service-account.json \
  --package-name com.example.app \
  --app-bundle app.aab \
  --track production

# Mit JSON-Ausgabe für maschinelle Verarbeitung
gplay upload --json \
  --service-account service-account.json \
  --package-name com.example.app \
  --app-bundle app.aab \
  --track internal

Exit-Codes

CodeBedeutung
0Erfolg
1Allgemeiner Fehler
2Service-Konto ungültig
3Ungültige AAB/APK-Datei
4App nicht gefunden
5Berechtigungsfehler

Beispiel mit KI-Agenten

Claude Code:

claude -- "Verwende das Google Play CLI, um die Datei app-release.aab auf den internen Testtrack hochzuladen"

Cursor:

@Agent Lade die AAB-Datei in Google Play hoch

API-Ausgabe

Jeder erfolgreiche Upload gibt ein JSON-Objekt zurück, das der Antwort der Play Developer API entspricht:

{
  "versionCode": 42,
  "status": "completed",
  "track": "internal",
  "releaseNotes": [{
    "language": "de-DE",
    "text": "Fehlerbehebungen"
  }]
}

Umgebungsvariablen

  • PLAY_SERVICE_ACCOUNT_JSON – Pfad zur Service-Konto-JSON-Datei (ersetzt --service-account)
  • PLAY_PACKAGE_NAME – App-Paketname (ersetzt --package-name)

Integration in CI

GitHub Actions:

- name: Upload to Google Play
  run: |
    gplay upload \
      --service-account $PLAY_SERVICE_ACCOUNT_JSON \
      --package-name com.example.app \
      --app-bundle app-release.aab \
      --track internal

GitLab CI:

variables:
  PLAY_SERVICE_ACCOUNT_JSON: ${CI_PROJECT_DIR}/service-account.json
  PLAY_PACKAGE_NAME: "com.example.app"

deploy:
  script:
    - gplay upload --app-bundle app-release.aab --track internal

Migration von Fastlane

Wenn du bisher Fastlane supply verwendet hast, ersetze deinen Fastfile-Eintrag:

# Altes Fastlane
gradle(task: 'assembleRelease')
supply(
  track: 'internal',
  aab: 'app/build/outputs/bundle/release/app-release.aab'
)

Durch:

# Neues Google Play CLI
gradle assembleRelease
gplay upload \
  --service-account service-account.json \
  --package-name com.example.app \
  --app-bundle app/build/outputs/bundle/release/app-release.aab \
  --track internal

Tipps für Agenten

  1. Zustandslos: Jeder Befehl ist unabhängig – keine Sitzung erforderlich.
  2. Semantische Fehler: Nutze Exit-Codes für Entscheidungslogik.
  3. JSON-Ausgabe: Verwende --json für strukturierte Antworten, die direkt von Agenten geparst werden können.
  4. Schnelle Tests: Verwende den --track draft für schnelle Uploads ohne Zensur.

Lizenz

MIT

Verwandte Skills