关于 android-playstore-setup
指导 Android 项目配置 Google Play 内部测试轨道的发布流程,使用 Fastlane 与 GitHub Actions 自动化构建和部署。面向需要建立签名、商店素材、版本管理及 API 连接的项目。
主要功能
- 01扫描项目并生成配置清单
- 02配置 Fastlane 与签名
- 03准备图标、截图和商店元数据
- 04设置版本管理与隐私政策
- 05创建 GitHub Actions 工作流
- 06验证 Play Store API 连接
适用场景
- 01为 Android 应用配置内部测试发布
- 02自动生成截图并整理商店素材
- 03通过 GitHub Actions 构建和部署
- 04排查服务账号或签名配置
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ hitoshura25/ claude-devtools --skill android-playstore-setup安装后在 Claude Code 中输入/android-playstore-setup确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
templates/GITHUB_SECRETS.mdRELEASE_NOTES_README.mdTRACKS.mdvalidate-playstore.pywhatsnew-template.txt详细介绍
Android Play Store 设置
此技能通过 Fastlane 协调完成 Google Play Store 部署设置,并自动发布到内部测试轨道。
功能说明
范围: 仅部署到内部测试轨道(简化流程,便于快速测试)
使用 Fastlane 设置自动部署到 Play Store 所需的一切:
- 扫描项目 - 分析项目并生成设置清单
- Fastlane 设置 - 配置 Fastlane、supply 和 screengrab
- 应用图标 - 生成并放置图标资源
- 屏幕截图 - 自动截取屏幕截图
- 商店商品详情 - 功能图片和元数据
- 隐私政策 - 为 GitHub Pages 生成隐私政策
- 版本管理 - 设置基于 Git 标签的版本控制
- 签名配置 - 配置发布签名
- 服务账号 - Play Store API 访问权限
- GitHub Actions - 使用 Fastlane 的 CI/CD 工作流
前提条件
- Google Play Developer 账号(一次性支付 $25)
- Google Cloud Platform 账号(免费)
- Play Console 管理员访问权限
- 已在 Play Console 中预留的软件包名称
工作流概览
1. Scan → 2. Review → 3. Setup → 4. Deploy
↓ ↓ ↓ ↓
📋 ✅ 🔧 🚀
流程
步骤 1:扫描项目(仅分析)
运行 /devtools:android-playstore-scan
功能:
- 扫描 AndroidManifest.xml 和 build.gradle
- 检测 Health Connect、广告和分析功能
- 检查是否有隐私政策
- 生成预先填写好答案的
PLAY_CONSOLE_SETUP.md
输出: PLAY_CONSOLE_SETUP.md
操作: 查看生成的文件并处理其中的警告
步骤 2:生成隐私政策(如需要)
如果 PLAY_CONSOLE_SETUP.md 显示缺少隐私政策:
运行 /devtools:privacy-policy-generate
功能:
- 扫描项目以获取应用信息
- 检测 Health Connect 和第三方 SDK
- 提示填写开发者信息
- 生成
docs/privacy-policy.md - 创建 GitHub Pages 设置指南
验证:
test -f docs/privacy-policy.md && echo "✓ Privacy policy created"
下一步: 启用 GitHub Pages(Settings → Pages → Source: docs/)
步骤 3:设置版本管理
运行 /devtools:version-management,并指定 platform=gradle
功能:
- 创建
scripts/version-manager.sh(核心) - 创建
scripts/gradle-version.sh(Android 适配器) - 创建含初始版本的
version.properties - 更新
app/build.gradle.kts,使其从 version.properties 读取版本信息
验证:
./scripts/version-manager.sh latest
./scripts/gradle-version.sh generate patch
步骤 4:生成密钥库
运行 /devtools:android-keystore-generation
功能:
- 生成 production-release.jks(用于 CI/CD)
- 生成 local-dev-release.jks(用于本地测试)
- 创建包含凭据的 KEYSTORE_INFO.txt
- 更新 .gitignore
验证:
ls keystores/*.jks
cat keystores/KEYSTORE_INFO.txt
步骤 5:配置签名
运行 /devtools:android-signing-config
功能:
- 将签名配置添加到 app/build.gradle.kts
- 配置双来源凭据(环境变量 + gradle.properties)
- 更新本地 ~/.gradle/gradle.properties
- 为发布构建添加验证
验证:
./gradlew assembleRelease
步骤 6:配置 ProGuard(如尚未配置)
运行 /devtools:android-proguard-setup
功能:
- 使用安全的默认设置创建 app/proguard-rules.pro
- 启用代码混淆和资源缩减
- 根据需要添加特定于库的规则
验证:
grep "isMinifyEnabled = true" app/build.gradle.kts
步骤 7:设置 Fastlane
运行 /devtools:android-fastlane-setup
功能:
- 创建包含 fastlane 和 screengrab 的 Gemfile
- 创建含软件包名称的 fastlane/Appfile
- 创建含部署通道的 fastlane/Fastfile
- 创建用于自动截取屏幕截图的 fastlane/Screengrabfile
- 创建 fastlane/metadata/ 目录结构
验证:
bundle exec fastlane --version
bundle exec fastlane lanes
步骤 7a:生成应用图标
运行 /devtools:android-app-icon
功能:
- 分析项目以获取应用名称和颜色
- 生成包含 IconKitchen 操作说明的 docs/APP_ICON_SETUP.md
- 提供用于处理 IconKitchen 下载文件的辅助脚本
- 复制 mipmap 资源和 Play Store 图标
验证:
test -f fastlane/metadata/android/en-US/images/icon.png
file fastlane/metadata/android/en-US/images/icon.png | grep "512 x 512"
步骤 7b:设置截图自动化
运行 /devtools:android-screenshot-automation
功能:
- 将 screengrab 依赖项添加到 app/build.gradle.kts
- 创建包含所需权限的调试清单
- 创建用于自动截图的 ScreenshotTest.kt
- 创建用于清理状态栏的 DemoModeRule.kt
验证:
bundle exec fastlane screenshots
ls fastlane/metadata/android/en-US/images/phoneScreenshots/
步骤 7c:创建应用商店列表素材
运行 /devtools:android-store-listing
功能:
- 生成 docs/STORE_LISTING_GUIDE.md
- 创建元数据模板(标题、描述等)
- 提供功能图片生成脚本
- 指导用户创建素材
验证:
test -f fastlane/metadata/android/en-US/images/featureGraphic.png
wc -c fastlane/metadata/android/en-US/*.txt
步骤 8:创建部署工作流
运行 /devtools:android-workflow-internal
功能:
- 创建 .github/workflows/build.yml(仅用于 CI——在推送/PR 时运行)
- 创建 .github/workflows/release-internal.yml(使用 Fastlane 手动发布)
- 添加 Ruby 设置和 bundle 缓存
- 使用
bundle exec fastlane deploy_internal进行部署 - 所有操作均固定到 SHA
验证:
test -f .github/workflows/build.yml
test -f .github/workflows/release-internal.yml
grep "bundle exec fastlane" .github/workflows/release-internal.yml
步骤 9:设置服务账号
运行 /devtools:android-service-account-guide
功能:
- 提供 Google Cloud 设置的分步指南
- 说明如何创建服务账号
- 创建 Play Console 设置文档
需要手动执行的步骤:
- 在 Google Cloud 中创建服务账号
- 下载 JSON 密钥
- 在 Play Console 中授予权限
- 将 JSON 添加到 GitHub Secrets,名称为
SERVICE_ACCOUNT_JSON_PLAINTEXT
步骤 10:将 Keystore 添加到 GitHub Secrets
从 keystores/KEYSTORE_INFO.txt 中获取信息,将以下机密添加到 GitHub:
# From KEYSTORE_INFO.txt, copy the base64 encoded keystore:
SIGNING_KEY_STORE_BASE64: <base64_string>
SIGNING_KEY_ALIAS: upload
SIGNING_STORE_PASSWORD: <password>
SIGNING_KEY_PASSWORD: <password>
步骤 11:验证 API 连接
运行 /devtools:android-playstore-api-validation
功能:
- 创建 scripts/validate-playstore.py
- 测试 Play Store API 连接
- 验证服务账号权限
验证:
python3 -m venv .venv
source .venv/bin/activate
pip install google-auth google-api-python-client
python3 scripts/validate-playstore.py /path/to/service-account.json com.example.app
步骤 12:首次手动上传(至关重要)
⚠️ 在 GitHub Actions 可以部署之前,必须手动上传首次发布版本。
为什么?
- Google Play 要求首次手动上传,以完成应用商店列表
- 你的生产 Keystore 将成为上传密钥
- Play App Signing 会自动启用
步骤:
# 1. Build release bundle locally
./gradlew bundleRelease
# 2. Verify it's signed
jarsigner -verify -verbose app/build/outputs/bundle/release/app-release.aab
# 3. Manual upload via Play Console
在 Play Console 中:
- 前往 Release → Internal testing
- 点击 Create new release
- 上传
app-release.aab - 完成应用商店列表(标题、描述、图标)
- 完成应用内容声明
- 发布到内部测试
**重要:**首次上传所用的 Keystore 必须与 GitHub Secrets 中配置的 Keystore 相同!
步骤 13:测试 Fastlane 部署
首次手动上传完成后:
# Push to main branch to trigger deployment
git add .
git commit -m "Setup Play Store deployment"
git push origin main
执行内容:
- GitHub Actions 工作流启动
- 运行单元测试
- 构建发布包
- 部署到内部测试轨道
**查看进度:**前往仓库 → Actions 选项卡
了解 Play App Signing
双密钥系统
| 密钥类型 | 用途 | 持有方 | 可以重置? |
|---|---|---|---|
| App Signing Key | 为用户签署 APK | 否(永久) | |
| Upload Key | 验证你的上传内容 | 你 | 可以(通过 Play Console) |
自动设置
对于 2021 年 8 月之后创建的应用,Play App Signing 会自动启用:
- 首次上传:Google 生成应用签名密钥
- 你的生产 Keystore = 上传密钥
- Google 在分发前使用应用签名密钥重新签名
无需任何操作——即可正常使用!
最终验证清单
# Project files
✓ Fastlane configured (Gemfile, Fastfile, Appfile)
✓ Version management scripts in scripts/
✓ Keystores in keystores/ (gitignored)
✓ Privacy policy in docs/privacy-policy.md
✓ Metadata in fastlane/metadata/android/en-US/
✓ CI workflow in .github/workflows/build.yml
✓ Release workflow in .github/workflows/release-internal.yml
# Build verification
✓ ./gradlew assembleRelease succeeds
✓ Unit tests pass
✓ ProGuard enabled
# GitHub Secrets configured
✓ SERVICE_ACCOUNT_JSON_PLAINTEXT
✓ SIGNING_KEY_STORE_BASE64
✓ SIGNING_KEY_ALIAS
✓ SIGNING_STORE_PASSWORD
✓ SIGNING_KEY_PASSWORD
# Play Console
✓ First manual upload completed
✓ Internal testing track active
✓ Service account has permissions
# API validation
✓ scripts/validate-playstore.py passes
后续步骤
Beta/生产环境部署
内部测试正常运行后:
# Add beta track
/devtools:android-workflow-beta
# Add production track
/devtools:android-workflow-production
轨道信息
| 轨道 | 受众 | 审核时间 | 用途 |
|---|---|---|---|
| Internal | 最多 100 名测试人员 | 即时 | 快速测试,无需审核 |
| Closed (Alpha) | 受邀测试人员 | < 24h | Beta 测试 |
| Open (Beta) | 任何人都可以加入 | < 24h | 公开 Beta 测试 |
| Production | 所有用户 | 1-7 天 | 正式发布 |
故障排除
API 验证中出现“找不到软件包”
- 确保应用已在 Play Console 中创建
- 确认软件包名称完全一致
- 完成首次手动上传
“上传密钥不匹配”
- 首次上传所用的密钥库 ≠ GitHub Secrets 中的密钥库
- 解决方法:前往 Play Console → 应用签名 → 请求重置上传密钥
- 使用正确的密钥库重新上传
服务账号出现“权限被拒绝”
- 在 Play Console 中授予“发布到正式版”权限
- 等待 5-10 分钟,让权限生效
GitHub Actions 部署失败
- 确认所有 GitHub Secrets 均设置正确
- 检查工作流日志,查看具体错误
- 确保已完成首次手动上传
总结
你已成功完成以下设置:
- ✅ 隐私政策(GitHub Pages 已就绪)
- ✅ 版本管理(基于 Git 标签)
- ✅ 发布签名(正式版 + 本地开发)
- ✅ Fastlane 部署自动化
- ✅ GitHub Actions CI/CD(内部测试轨道)
- ✅ Play Store API 连接
你的应用现已准备好进行持续集成和部署!
每次推送到 main 或提交 PR → 自动构建和测试(CI)✅ 手动触发工作流 → 版本管理 + 部署到内部测试轨道 🚀
所有检查都必须通过,才能将此技能标记为完成。
完成标准
只有在确认以下所有项目后,才能标记为完成:
✅ 服务账号设置
- 已在 Google Cloud 中创建服务账号
- 已下载 JSON 密钥并安全存储
- 已启用 Play Developer API
- 已将服务账号关联到 Play Console
- 已授予“发布”权限
✅ 商店元数据结构
- fastlane/metadata/android/en-US/ 目录已存在
- 至少已配置 en-US 区域设置
- 已创建元数据文件(标题、描述、更新日志)
- 已创建 docs/PLAY_STORE_TRACKS.md 文档
✅ API 验证
- scripts/validate-playstore.py 已存在
- 验证脚本运行成功
- 已确认 API 连接正常
- 已确认软件包访问权限
✅ 文档
- PLAY_CONSOLE_SETUP.md 已存在(项目根目录)
- GITHUB_SECRETS.md 已存在(如有需要)
总结报告
完成后,提供以下总结:
✅ Android Play Store Setup Complete!
🔐 Service Account:
✓ Created in Google Cloud
✓ JSON key downloaded
✓ Linked to Play Console
✓ Permissions granted
📝 Store Metadata:
✓ Structure created: fastlane/metadata/android/en-US/
✓ Locales configured
✓ Templates ready
✅ API Validation:
✓ Validation script created
✓ API connection tested
✓ Package access confirmed
📋 Next Steps:
For GitHub:
1. Add secrets (see GITHUB_SECRETS.md if it exists)
2. Create "production" environment with reviewers
For Deployment:
1. Run: /devtools:android-playstore-publish
2. Generate deployment workflows
⚠️ CRITICAL REMINDERS:
- NEVER commit service account JSON to git
- Store JSON key in password manager
- Add all 5 secrets to GitHub before deploying
- Wait 5-10 minutes after granting permissions
与其他技能集成
此技能是以下技能的前置条件:
android-playstore-publishing- 使用服务账号进行部署android-playstore-pipeline- 完整的流水线设置
故障排除
如果任何技能失败:
- 修复该技能中的具体问题
- 重新运行该技能,直到完成
- 继续执行其余技能
- 运行最终验证
常见问题:
- 找不到服务账号 → 检查 Google Cloud 项目
- 权限被拒绝 → 授予“发布”权限
- API 验证失败 → 等待 5-10 分钟,让权限生效