mcpField
G
gpd-cli

gpd-cli

github.com/dl-alexandre开发145 次安装4 周前更新
代码仓库

关于 gpd-cli

gpd-cli 是使用 `gpd` 命令行工具管理 Google Play Developer Console 的技能,涵盖发布、商店运营、变现、购买、分析和 Fastlane 迁移。

主要功能

  1. 01发布构建并管理发布轨道
  2. 02编辑商店详情和素材
  3. 03管理变现与购买
  4. 04查看评价和 Android Vitals
  5. 05迁移 Fastlane 元数据

适用场景

  1. 01上传构建并分阶段推出正式版
  2. 02更新本地化商店详情和截图
  3. 03检查应用健康状况与用户反馈
  4. 04导入或导出 Fastlane 元数据

安装

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

$npx skills add https://github.com/dl-alexandre/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

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

权限

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

分析

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