发布与回滚策略
问题
如何设计安全的 iOS 发布流程?出问题如何回滚?
答案
发布流程
灰度策略
| 阶段 | 比例 | 时间 | 关注指标 |
|---|---|---|---|
| TestFlight | 团队 | 1-2 天 | 功能验证 |
| Phased Release Day 1 | 1% | 1 天 | Crash 率 |
| Day 2 | 2% | 1 天 | 关键指标 |
| Day 3-7 | 5-100% | 渐进 | 全面监控 |
iOS 回滚方案
iOS 限制
Apple 不支持回退到旧版本!用户一旦更新无法降级。
替代方案:
// 1. Feature Flag 关闭有问题的功能
if RemoteConfig.shared.getBool("disable_new_checkout") {
showOldCheckout()
} else {
showNewCheckout()
}
// 2. 紧急发版
// App Store 急审(通常 24h 内),提交修复版本
// 3. Phased Release 暂停
// App Store Connect → 暂停分阶段发布 → 只影响未更新用户
止血清单
- 暂停 Phased Release(5 分钟)
- Remote Config 关闭问题功能(10 分钟)
- 提交修复版本 + 请求急审(24h)
- 复盘:写事故报告
常见面试问题
Q1: App Store 急审有什么要求?
答案:通过 Apple 急审通道申请,需说明崩溃或安全问题。通常 24h 内审核完成。日常版本不要滥用,否则会影响后续申请。