google-play-cli は何をしますか?
gplay: CIまたはコーディングエージェントからGoogle Playに公開します。単一の静的バイナリ、Play Developer APIをそのままミラーリングするJSON出力、意味的な終了コード。Fastlane supplyを置き換えます。
概要
gplay は、Google Play Consoleへのアプリ公開を自動化するためのコマンドラインツールです。CI/CDパイプラインやAIエージェントでの使用に最適化されており、以下の特徴を持ちます:
- 単一の静的バイナリ: Goで書かれており、依存関係なしでどの環境でも実行可能
- Play Developer APIの完全ミラーリング: APIレスポンスをそのままJSONで出力
- 意味的な終了コード: 成功(0)、認証エラー(1)、APIエラー(2)など、機械可読な終了コード
- Fastlane supplyの置き換え: よりシンプルで高速な公開プロセスを実現
インストール
# Linux/macOS (x86_64)
curl -L https://github.com/PollyGlot/google-play-cli/releases/latest/download/gplay-linux-amd64 -o gplay
chmod +x gplay
sudo mv gplay /usr/local/bin/
# macOS (Apple Silicon)
curl -L https://github.com/PollyGlot/google-play-cli/releases/latest/download/gplay-darwin-arm64 -o gplay
chmod +x gplay
sudo mv gplay /usr/local/bin/
設定
Google Play Consoleへのアクセスには、サービスアカウントが必要です。
- Google Cloud Consoleでサービスアカウントを作成
- JSON形式の秘密鍵をダウンロード
- 環境変数
GOOGLE_APPLICATION_CREDENTIALSに鍵ファイルのパスを設定
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account-key.json"
使用方法
基本コマンド
# アプリの新規バージョンを公開
gplay upload --package-name com.example.app --aab app-release.aab
# 既存のバージョンを宣伝
gplay promote --package-name com.example.app --from-track internal --to-track production
# トラックのステータスを確認
gplay status --package-name com.example.app --track production
AIエージェントでの使用例
{
"command": "gplay upload --package-name com.example.app --aab app-release.aab --json",
"output": {
"versionCode": 42,
"status": "UPLOADED",
"track": "internal"
},
"exitCode": 0
}
オプション
| オプション | 説明 |
|---|---|
--package-name | アプリのパッケージ名(必須) |
--aab | アップロードするAABファイルのパス |
--apk | アップロードするAPKファイルのパス |
--track | トラック名(internal, alpha, beta, production) |
--from-track | 昇格元のトラック |
--release-name | リリース名(オプション) |
--json | JSON形式で出力 |
--help | ヘルプを表示 |
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功 |
| 1 | 認証エラー |
| 2 | APIエラー |
| 3 | 引数エラー |
| 4 | ファイルエラー |
CI/CD統合
GitHub Actions
- name: Publish to Google Play
run: |
gplay upload --package-name ${{ secrets.PACKAGE_NAME }} --aab app-release.aab
env:
GOOGLE_APPLICATION_CREDENTIALS: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }}
GitLab CI
publish:
script:
- gplay upload --package-name $PACKAGE_NAME --aab app-release.aab
ライセンス
MIT