mcpField
G
gpd-cli

gpd-cli

github.com/rudrankriyam開発638 回インストール17 週間前に更新
リポジトリ

gpd-cli について

`gpd` コマンドラインツールで Google Play Developer Console を操作するスキルです。公開、アプリ情報、収益化、分析、移行に対応し、影響の大きい操作には安全策を設けます。

主な機能

  1. 01ビルドのアップロードとリリース管理
  2. 02段階的公開とストア掲載情報の設定
  3. 03レビュー、テスター、アプリ品質指標の管理
  4. 04商品、サブスクリプション、購入の操作
  5. 05Fastlane メタデータの移行

活用シーン

  1. 01アプリを内部または本番トラックに公開
  2. 02本番公開を段階的に進める、または停止
  3. 03アプリの状態とユーザーフィードバックを確認
  4. 04Fastlane のストアメタデータをインポートまたはエクスポート

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rudrankriyam/gpd-cli-skills --skill gpd-cli

インストール後、Claude Code で/gpd-cliを入力して読み込まれたか確認します。

詳細

Google Play Developer CLI

gpd コマンドラインツールを使用して、Google Play Developer Console を管理します。

関連するスキル

  • gpd-cli-usage:コマンドの調査、フラグ、認証、出力の規則
  • gpd-release-flow:トラックのリリースと段階的な公開をエンドツーエンドで実施
  • gpd-submission-health:事前チェックと検証
  • gpd-metadata-sync:ストア掲載情報、アセット、Fastlane メタデータ
  • gpd-ppp-pricing:地域別価格設定のワークフロー
  • gpd-build-lifecycle:ビルド処理とリリースの状態
  • gpd-betagroups:ベータテスターと配布
  • gpd-id-resolver:パッケージ、トラック、収益化 ID の解決

前提条件

gpd --version

export GPD_SERVICE_ACCOUNT_KEY='{"type": "service_account", ...}'
gpd auth status
gpd auth check --package com.example.app

認証情報の取り扱い。 gpd には、アクセス権限を 0600 に設定した鍵 ファイル(chmod 600 key.json)を指定するか、実行時にシークレットマネージャーから鍵を取得してください。生の JSON を環境変数に貼り付けるのは避けてください。 export GPD_SERVICE_ACCOUNT_KEY='{...}' をインラインで実行すると、鍵がシェルの履歴やプロセス環境に漏えいします(ps、/proc、子プロセスから参照可能です)。必要な Play Console 権限だけに範囲を絞った、専用の最小権限サービスアカウントを使用し、鍵をソース管理にコミットしないでください。

CLI の使用方法

  • gpd --help と gpd <area> --help を使用して、コマンドとフラグを確認します。
  • デフォルトの出力は最小化された JSON です。読みやすい出力が必要な場合は --pretty を使用します。
  • 破壊的な操作を実行する前に、利用可能な場合は --dry-run を使用します。
  • 破壊的な操作には --confirm が必要です(例:停止、ロールバック、削除)。

公開

アップロードとリリース
gpd publish upload app.aab --package com.example.app
gpd publish release --package com.example.app --track internal --status draft
gpd publish release --package com.example.app --track production --status inProgress --version-code 123
gpd publish status --package com.example.app --track production
gpd publish tracks --package com.example.app
段階的な公開
gpd publish rollout --package com.example.app --track production --percentage 10
gpd publish promote --package com.example.app --from-track beta --to-track production
gpd publish halt --package com.example.app --track production --confirm
gpd publish rollback --package com.example.app --track production --confirm
編集のライフサイクル
gpd publish edit create --package com.example.app
gpd publish edit list --package com.example.app
gpd publish edit validate EDIT_ID --package com.example.app
gpd publish edit commit EDIT_ID --package com.example.app
gpd publish edit delete EDIT_ID --package com.example.app
gpd publish upload app.aab --package com.example.app --edit-id EDIT_ID --no-auto-commit
ストア掲載情報
gpd publish listing get --package com.example.app
gpd publish listing update --package com.example.app --locale en-US --title "My App"
gpd publish details get --package com.example.app
gpd publish details update --package com.example.app --contact-email [email protected]
画像
gpd publish images list phoneScreenshots --package com.example.app --locale en-US
gpd publish images upload icon icon.png --package com.example.app --locale en-US
gpd publish images delete phoneScreenshots IMAGE_ID --package com.example.app --locale en-US
gpd publish images deleteall featureGraphic --package com.example.app --locale en-US
gpd publish assets upload ./assets --package com.example.app
gpd publish assets spec
gpd publish deobfuscation upload mapping.txt --package com.example.app --type proguard --version-code 123
gpd publish internal-share upload app.aab --package com.example.app
テスター
gpd publish testers list --package com.example.app --track internal
gpd publish testers add --package com.example.app --track internal --group [email protected]

レビュー

gpd reviews list --package com.example.app --min-rating 1 --max-rating 3
gpd reviews list --package com.example.app --include-review-text --scan-limit 200
gpd reviews reply --package com.example.app --review-id REVIEW_ID --text "Thank you!"

Android Vitals

gpd vitals crashes --package com.example.app --start-date 2024-01-01 --end-date 2024-01-31
gpd vitals anrs --package com.example.app --start-date 2024-01-01 --end-date 2024-01-31
gpd vitals excessive-wakeups --package com.example.app --start-date 2024-01-01 --end-date 2024-01-31
gpd vitals slow-rendering --package com.example.app --start-date 2024-01-01 --end-date 2024-01-31
gpd vitals slow-start --package com.example.app --start-date 2024-01-01 --end-date 2024-01-31
gpd vitals errors issues search --package com.example.app --query "NullPointerException" --interval last30Days
gpd vitals errors reports search --package com.example.app --query "crash" --interval last7Days --deobfuscate
gpd vitals errors counts get --package com.example.app
gpd vitals errors counts query --package com.example.app --start-date 2024-01-01 --end-date 2024-01-31
gpd vitals anomalies list --package com.example.app --metric crashRate --time-period last30Days

収益化

商品
gpd monetization products list --package com.example.app
gpd monetization products get sku123 --package com.example.app
gpd monetization products create --package com.example.app --product-id sku123 --type managed --default-price 990000
gpd monetization products update --package com.example.app sku123 --status inactive
gpd monetization products delete --package com.example.app sku123
gpd monetization onetimeproducts list --package com.example.app
gpd monetization onetimeproducts get sku123 --package com.example.app
gpd monetization onetimeproducts create --package com.example.app --product-id sku123 --type consumable
gpd monetization onetimeproducts update --package com.example.app sku123 --default-price 1990000
gpd monetization onetimeproducts delete --package com.example.app sku123
サブスクリプション
gpd monetization subscriptions list --package com.example.app
gpd monetization subscriptions get sub123 --package com.example.app
gpd monetization subscriptions create --package com.example.app --product-id sub123 --file subscription.json
gpd monetization subscriptions update --package com.example.app sub123 --file subscription.json
gpd monetization subscriptions patch --package com.example.app sub123 --file subscription.json --update-mask basePlans
gpd monetization subscriptions delete --package com.example.app sub123 --confirm
gpd monetization subscriptions archive --package com.example.app sub123
gpd monetization subscriptions batchGet --package com.example.app --ids sub1,sub2,sub3
gpd monetization subscriptions batchUpdate --package com.example.app --file batch-update.json
ベースプランと特典
gpd monetization baseplans activate --package com.example.app sub123 plan456
gpd monetization baseplans deactivate --package com.example.app sub123 plan456
gpd monetization baseplans delete --package com.example.app sub123 plan456 --confirm
gpd monetization baseplans migrate-prices --package com.example.app sub123 plan456 --region-code US --price-micros 999000
gpd monetization baseplans batch-migrate-prices --package com.example.app sub123 --file migrate.json
gpd monetization baseplans batch-update-states --package com.example.app sub123 --file states.json
gpd monetization offers list --package com.example.app sub123 plan456
gpd monetization offers create --package com.example.app sub123 plan456 --offer-id offer789 --file offer.json
gpd monetization offers get --package com.example.app sub123 plan456 offer789
gpd monetization offers delete --package com.example.app sub123 plan456 offer789 --confirm
gpd monetization offers activate --package com.example.app sub123 plan456 offer789
gpd monetization offers deactivate --package com.example.app sub123 plan456 offer789
gpd monetization offers batchGet --package com.example.app sub123 plan456 --offer-ids offer1,offer2
gpd monetization offers batchUpdate --package com.example.app sub123 plan456 --file offers.json
gpd monetization offers batchUpdateStates --package com.example.app sub123 plan456 --file states.json

購入

gpd purchases verify --package com.example.app --token TOKEN --product-id sku123
gpd purchases voided list --package com.example.app --start-time 2024-01-01T00:00:00Z --type product
gpd purchases products acknowledge --package com.example.app --product-id sku123 --token TOKEN
gpd purchases products consume --package com.example.app --product-id sku123 --token TOKEN
gpd purchases subscriptions cancel --package com.example.app --subscription-id sub123 --token TOKEN
gpd purchases subscriptions refund --package com.example.app --subscription-id sub123 --token TOKEN

金銭が動くコマンド。 purchases subscriptions refund と purchases subscriptions cancel は実際のお金を動かし、顧客の サブスクリプションに影響します。ユーザーがその操作を明示的に 依頼し、パッケージ、サブスクリプション ID、トークンを確認した 後にのみ実行してください。対応している場合は、まず --dry-run で 実行し、実際にコマンドを実行する前に結果をユーザーに提示してください。

権限

gpd permissions users list --developer-id DEV_ID
gpd permissions users create --developer-id DEV_ID --email [email protected] --developer-permissions CAN_VIEW_FINANCIAL_DATA_GLOBAL
gpd permissions grants create --package com.example.app --email [email protected] --app-permissions CAN_REPLY_TO_REVIEWS

アクセス権を付与するコマンド。 permissions users create と permissions grants create は、開発者アカウントまたはアプリへの アクセス権(財務データやレビューの権限を含む)をユーザーに付与します。 ユーザーが明示的に依頼し、メールアドレスと付与する権限を正確に確認した 後にのみ実行してください。最小権限を付与し、対応している場合はまず --dry-run で実行して、実際にコマンドを実行する前に結果をユーザーに提示してください。

分析

gpd analytics query --package com.example.app --start-date 2024-01-01 --end-date 2024-01-31

移行

Fastlane Supply
gpd migrate fastlane validate --dir fastlane/metadata/android
gpd migrate fastlane export --package com.example.app --output fastlane/metadata/android
gpd migrate fastlane export --package com.example.app --include-images --locales en-US,de-DE
gpd migrate fastlane import --package com.example.app --dir fastlane/metadata/android
gpd migrate fastlane import --package com.example.app --dir fastlane/metadata/android --replace-images
gpd migrate fastlane import --package com.example.app --dir fastlane/metadata/android --skip-images --dry-run

エージェントのベストプラクティス

  1. デフォルトでは JSON 出力 - すべてのコマンドは最小化された JSON を出力します
  2. --pretty を使用 - デバッグ中に読みやすい JSON を表示します
  3. 破壊的な操作の前に --dry-run を使用
  4. 終了コードを確認:0=成功、2=認証エラー、3=権限拒否、4=検証エラー、5=レート制限、6=ネットワークエラー、7=見つからない、8=競合
  5. 複雑な複数ステップの公開には編集のライフサイクルを使用し、--edit-id と --no-auto-commit を指定します

一般的なワークフロー

内部テストトラックへのデプロイ
gpd publish upload app.aab --package com.example.app
gpd publish release --package com.example.app --track internal --status completed
本番環境への段階的な公開
gpd publish release --package com.example.app --track production --status inProgress --version-code 123
gpd publish rollout --package com.example.app --track production --percentage 5
gpd publish rollout --package com.example.app --track production --percentage 50
gpd publish rollout --package com.example.app --track production --percentage 100
アプリの健全性を監視
gpd vitals crashes --package com.example.app --start-date 2024-01-01 --end-date 2024-01-31
gpd reviews list --package com.example.app --min-rating 1 --max-rating 2
Fastlane からの移行
gpd migrate fastlane validate --dir fastlane/metadata/android
gpd migrate fastlane import --package com.example.app --dir fastlane/metadata/android --dry-run
gpd migrate fastlane import --package com.example.app --dir fastlane/metadata/android

コメント