gplay-rollout-management
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseStaged Rollout Management
分阶段发布管理
Use this skill when you need to manage gradual releases on Google Play.
当你需要在Google Play上管理渐进式发布时,可以使用此技能。
What is Staged Rollout?
什么是分阶段发布?
Staged rollout releases your app to a percentage of users, allowing you to:
- Monitor crash rates and reviews before full release
- Catch critical bugs with limited user impact
- Gradually increase distribution as confidence grows
分阶段发布会将应用推送给一定比例的用户,让你能够:
- 在全量发布前监控崩溃率和用户评价
- 以有限的用户影响发现严重bug
- 随着信心提升逐步扩大分发范围
Start a Staged Rollout
启动分阶段发布
During initial release
初始发布时
bash
gplay release \
--package com.example.app \
--track production \
--bundle app-release.aab \
--rollout 10This releases to 10% of users.
bash
gplay release \
--package com.example.app \
--track production \
--bundle app-release.aab \
--rollout 10该命令会将应用推送给10%的用户。
Promote with rollout
带发布比例的版本晋升
bash
gplay promote \
--package com.example.app \
--from beta \
--to production \
--rollout 25bash
gplay promote \
--package com.example.app \
--from beta \
--to production \
--rollout 25Increase Rollout Percentage
提升发布比例
bash
undefinedbash
undefinedIncrease to 25%
提升至25%
gplay rollout update
--package com.example.app
--track production
--rollout 25
--package com.example.app
--track production
--rollout 25
gplay rollout update
--package com.example.app
--track production
--rollout 25
--package com.example.app
--track production
--rollout 25
Increase to 50%
提升至50%
gplay rollout update
--package com.example.app
--track production
--rollout 50
--package com.example.app
--track production
--rollout 50
gplay rollout update
--package com.example.app
--track production
--rollout 50
--package com.example.app
--track production
--rollout 50
Increase to 100% (or use complete)
提升至100%(或使用complete命令)
gplay rollout update
--package com.example.app
--track production
--rollout 100
--package com.example.app
--track production
--rollout 100
undefinedgplay rollout update
--package com.example.app
--track production
--rollout 100
--package com.example.app
--track production
--rollout 100
undefinedHalt Rollout
暂停发布
Pause distribution if issues are detected:
bash
gplay rollout halt \
--package com.example.app \
--track productionEffect:
- Stops further distribution
- Existing users keep the update
- New users don't receive the update
如果检测到问题,暂停分发:
bash
gplay rollout halt \
--package com.example.app \
--track production效果:
- 停止进一步分发
- 已更新的用户保留当前版本
- 新用户不会收到更新
Resume Rollout
恢复发布
Resume after fixing issues:
bash
gplay rollout resume \
--package com.example.app \
--track production修复问题后恢复发布:
bash
gplay rollout resume \
--package com.example.app \
--track productionComplete Rollout
完成全量发布
Release to 100% of users:
bash
gplay rollout complete \
--package com.example.app \
--track production推送给100%的用户:
bash
gplay rollout complete \
--package com.example.app \
--track productionCheck Rollout Status
查看发布状态
bash
gplay tracks get \
--package com.example.app \
--track production \
| jq '.releases[0].userFraction'bash
gplay tracks get \
--package com.example.app \
--track production \
| jq '.releases[0].userFraction'Recommended Rollout Strategy
推荐的发布策略
Conservative (7-day rollout)
保守型(7天发布)
bash
undefinedbash
undefinedDay 1: 10%
第1天:10%
gplay release --package com.example.app --track production --bundle app.aab --rollout 10
gplay release --package com.example.app --track production --bundle app.aab --rollout 10
Day 2: 25% (monitor crash rate)
第2天:25%(监控崩溃率)
gplay rollout update --package com.example.app --track production --rollout 25
gplay rollout update --package com.example.app --track production --rollout 25
Day 3: 50%
第3天:50%
gplay rollout update --package com.example.app --track production --rollout 50
gplay rollout update --package com.example.app --track production --rollout 50
Day 5: 75%
第5天:75%
gplay rollout update --package com.example.app --track production --rollout 75
gplay rollout update --package com.example.app --track production --rollout 75
Day 7: 100%
第7天:100%
gplay rollout complete --package com.example.app --track production
undefinedgplay rollout complete --package com.example.app --track production
undefinedAggressive (3-day rollout)
激进型(3天发布)
bash
undefinedbash
undefinedDay 1: 25%
第1天:25%
gplay release --package com.example.app --track production --bundle app.aab --rollout 25
gplay release --package com.example.app --track production --bundle app.aab --rollout 25
Day 2: 50%
第2天:50%
gplay rollout update --package com.example.app --track production --rollout 50
gplay rollout update --package com.example.app --track production --rollout 50
Day 3: 100%
第3天:100%
gplay rollout complete --package com.example.app --track production
undefinedgplay rollout complete --package com.example.app --track production
undefinedCautious (for critical apps)
谨慎型(适用于关键应用)
bash
undefinedbash
undefinedDay 1: 5%
第1天:5%
gplay release --package com.example.app --track production --bundle app.aab --rollout 5
gplay release --package com.example.app --track production --bundle app.aab --rollout 5
Day 2: 10% (monitor carefully)
第2天:10%(仔细监控)
gplay rollout update --package com.example.app --track production --rollout 10
gplay rollout update --package com.example.app --track production --rollout 10
Day 3: 25%
第3天:25%
gplay rollout update --package com.example.app --track production --rollout 25
gplay rollout update --package com.example.app --track production --rollout 25
Day 5: 50%
第5天:50%
gplay rollout update --package com.example.app --track production --rollout 50
gplay rollout update --package com.example.app --track production --rollout 50
Day 7: 75%
第7天:75%
gplay rollout update --package com.example.app --track production --rollout 75
gplay rollout update --package com.example.app --track production --rollout 75
Day 10: 100%
第10天:100%
gplay rollout complete --package com.example.app --track production
undefinedgplay rollout complete --package com.example.app --track production
undefinedMonitoring During Rollout
发布期间的监控
Check crash rate
查看崩溃率
Use Play Console → Quality → Android vitals
使用Play Console → 质量 → Android应用性能(Android vitals)
Monitor reviews
监控用户评价
bash
undefinedbash
undefinedGet recent reviews
获取近期评价
gplay reviews list
--package com.example.app
--paginate
| jq '.reviews[] | select(.createdTime > "2025-02-05") | {rating, text: .comments[0].userComment.text}'
--package com.example.app
--paginate
| jq '.reviews[] | select(.createdTime > "2025-02-05") | {rating, text: .comments[0].userComment.text}'
undefinedgplay reviews list
--package com.example.app
--paginate
| jq '.reviews[] | select(.createdTime > "2025-02-05") | {rating, text: .comments[0].userComment.text}'
--package com.example.app
--paginate
| jq '.reviews[] | select(.createdTime > "2025-02-05") | {rating, text: .comments[0].userComment.text}'
undefinedFilter 1-star reviews
筛选1星评价
bash
gplay reviews list \
--package com.example.app \
| jq '.reviews[] | select(.rating == 1) | .comments[0].userComment.text'bash
gplay reviews list \
--package com.example.app \
| jq '.reviews[] | select(.rating == 1) | .comments[0].userComment.text'Decision Matrix
决策矩阵
| Metric | Action |
|---|---|
| Crash rate < 1% | Continue rollout |
| Crash rate 1-2% | Halt, investigate |
| Crash rate > 2% | Halt, rollback if possible |
| 1-star reviews spike | Halt, investigate |
| ANR rate spike | Halt, investigate |
| No issues after 24h | Increase rollout |
| 指标 | 行动 |
|---|---|
| 崩溃率 < 1% | 继续发布 |
| 崩溃率 1-2% | 暂停,调查问题 |
| 崩溃率 > 2% | 暂停,如有可能则回滚 |
| 1星评价激增 | 暂停,调查问题 |
| ANR率激增 | 暂停,调查问题 |
| 24小时内无问题 | 扩大发布比例 |
Rollback Strategy
回滚策略
Google Play doesn't support automatic rollback, but you can:
Google Play不支持自动回滚,但你可以采取以下方式:
Option 1: Upload hotfix
方案1:上传热修复包
bash
undefinedbash
undefinedBuild hotfix with higher version code
构建版本号更高的热修复包
./gradlew bundleRelease
./gradlew bundleRelease
Release hotfix immediately to 100%
立即全量发布热修复包
gplay release
--package com.example.app
--track production
--bundle app-hotfix.aab
--package com.example.app
--track production
--bundle app-hotfix.aab
undefinedgplay release
--package com.example.app
--track production
--bundle app-hotfix.aab
--package com.example.app
--track production
--bundle app-hotfix.aab
undefinedOption 2: Promote previous version
方案2:晋升旧版本
This requires the previous version still be in beta track:
bash
gplay promote \
--package com.example.app \
--from beta \
--to production此方案要求旧版本仍在beta渠道中:
bash
gplay promote \
--package com.example.app \
--from beta \
--to productionBest Practices
最佳实践
- Always start with <20% - Catch issues early
- Monitor for 24 hours between increases
- Have a hotfix plan - Be ready to fix critical bugs quickly
- Set up alerts - Monitor crash rates automatically
- Test thoroughly in beta - Reduce production issues
- Communicate with users - Update release notes
- Don't rush - Gradual rollout is for safety
- 始终从<20%的比例开始 - 尽早发现问题
- 每次提升比例后监控24小时
- 制定热修复计划 - 随时准备快速修复严重bug
- 设置告警 - 自动监控崩溃率
- 在beta渠道充分测试 - 减少生产环境问题
- 与用户沟通 - 更新发布说明
- 不要急于求成 - 分阶段发布是为了保障安全
Common Mistakes to Avoid
需避免的常见错误
❌ Don't:
- Jump from 10% to 100% immediately
- Ignore crash rate increases
- Roll out during weekends/holidays (slower monitoring)
- Skip beta testing phase
✅ Do:
- Monitor crash rates constantly
- Have team available during rollout
- Prepare hotfix in advance
- Communicate expected timeline to stakeholders
❌ 不要:
- 直接从10%跳至100%
- 忽略崩溃率的上升
- 在周末/节假日发布(监控效率更低)
- 跳过beta测试阶段
✅ 应该:
- 持续监控崩溃率
- 发布期间安排团队待命
- 提前准备热修复包
- 向相关人员传达预期时间线
Automation Example
自动化示例
CI/CD with automated rollout
带自动发布的CI/CD
yaml
undefinedyaml
undefined.github/workflows/rollout.yml
.github/workflows/rollout.yml
name: Automated Rollout
on:
schedule:
- cron: '0 9 * * *' # Daily at 9 AM
jobs:
increase-rollout:
runs-on: ubuntu-latest
steps:
- name: Get current rollout
id: current
run: |
CURRENT=$(gplay tracks get --package $PACKAGE | jq -r '.releases[0].userFraction')
echo "fraction=$CURRENT" >> $GITHUB_OUTPUT
- name: Increase rollout
if: steps.current.outputs.fraction < 1.0
run: |
NEW_FRACTION=$(echo "${{ steps.current.outputs.fraction }} + 0.25" | bc)
gplay rollout update --package $PACKAGE --track production --rollout $NEW_FRACTIONundefinedname: Automated Rollout
on:
schedule:
- cron: '0 9 * * *' # 每天上午9点
jobs:
increase-rollout:
runs-on: ubuntu-latest
steps:
- name: 获取当前发布比例
id: current
run: |
CURRENT=$(gplay tracks get --package $PACKAGE | jq -r '.releases[0].userFraction')
echo "fraction=$CURRENT" >> $GITHUB_OUTPUT
- name: 提升发布比例
if: steps.current.outputs.fraction < 1.0
run: |
NEW_FRACTION=$(echo "${{ steps.current.outputs.fraction }} + 0.25" | bc)
gplay rollout update --package $PACKAGE --track production --rollout $NEW_FRACTIONundefinedSupport
支持
For manual rollout control, always use the Google Play Console UI as a backup.
如需手动控制发布,始终可以将Google Play Console UI作为备用方案。