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. 05迁移 Fastlane 元数据

适用场景

  1. 01将应用发布到内部或正式轨道
  2. 02分阶段推出或暂停正式发布
  3. 03检查应用健康状况与用户反馈
  4. 04导入或导出 Fastlane 商店元数据

安装

复制下面的命令,在终端中运行。

$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:Beta 测试者和分发
  • 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='{...}' 会使密钥泄露到 shell 历史记录和进程环境中(可通过 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 运行状况

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

Agent 最佳实践

  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

评论

支持 Markdown