应用更新
应用更新功能管理客户端的自动更新机制,确保用户始终使用最新版本的ChainlessChain应用。
更新机制
自动检查更新
客户端会在以下时机自动检查更新:
- 启动时检查: 应用启动时自动查询最新版本
- 定时检查: 每24小时定时检查一次
- 手动检查: 用户在"关于"页面手动触发
更新流程
客户端检查更新
→ 发现新版本
→ 显示更新提示(版本号、更新内容)
→ 用户确认更新(或强制更新时自动下载)
→ 下载安装包
→ 校验文件完整性(SHA-256)
→ 安装更新
→ 重启应用更新策略配置
普通更新
用户可以选择"稍后更新",不影响当前使用:
登录厂家管理系统
→ 应用管理
→ 更新策略
→ 选择"普通更新"强制更新
强制更新适用于包含重要安全修复或不兼容变更的版本:
登录厂家管理系统
→ 应用管理
→ 版本管理
→ 选择目标版本
→ 开启"强制更新"
→ 设置最低兼容版本强制更新行为:
| 场景 | 行为 |
|---|---|
| 客户端版本 < 最低兼容版本 | 强制下载更新,不可跳过 |
| 客户端版本 ≥ 最低兼容版本 | 普通更新提示 |
| 客户端版本 = 最新版本 | 无更新提示 |
更新通道
| 通道 | 说明 | 适用场景 |
|---|---|---|
| 稳定版 (Stable) | 正式发布版本 | 生产环境 |
| 测试版 (Beta) | 测试中版本 | 内部测试 |
灰度发布
支持按比例逐步推送更新:
- 进入版本管理页面
- 选择目标版本
- 设置灰度比例(如10%、50%、100%)
- 保存设置
阶段1: 10% 用户 → 观察反馈 → 无异常
阶段2: 50% 用户 → 观察反馈 → 无异常
阶段3: 100% 全量推送回滚处理
如果新版本出现严重问题,可以执行回滚:
- 将问题版本状态改为"废弃"
- 客户端将不再提示更新到此版本
- 如有需要,发布修复版本
注意
已安装新版本的用户需要手动下载旧版本。建议优先发布修复版本而非回滚。
更新日志管理
每个版本的更新日志应包含:
- 新增功能: 新增的功能特性
- 问题修复: 修复的Bug和问题
- 性能优化: 性能方面的改进
- 已知问题: 当前版本的已知限制
注意事项
- 强制更新前确保新版本已充分测试
- 灰度发布时密切关注用户反馈
- 更新日志使用用户可理解的语言
- 大版本更新建议提前通知用户
- 保持旧版本安装包可下载,以备回滚需要
附录:规范章节补全(v5.0.3.108)
为对齐项目用户文档标准结构,下列章节补齐若干未在正文中单独列出的视角。已在正文覆盖的章节在此段仅作简述并标注
见上文指引。
1. 概述
见正文「更新机制」。应用更新模块负责客户端自动检查更新、下发更新策略(普通 / 强制)、更新通道、灰度发布与回滚处理。
2. 核心特性
- 客户端自动检查更新(启动 / 每 24h / 手动)
- 普通 / 强制两种更新策略 + 最低兼容版本
- 稳定 / 测试双更新通道
- 灰度发布(10% → 50% → 100%)+ 回滚处理
3. 系统架构
客户端 ──检查更新──► /api/app-versions/latest
▼
后端(Spring Boot + JWT)
▼
MySQL(app_versions:通道 / 灰度比例 / 强更标志)4. 系统定位
厂家管理系统的客户端版本下发与回滚控制层,与 应用发布 配套。
5. 核心功能
| 功能 | 说明 |
|---|---|
| 自动检查 | 启动 / 定时 24h / 手动触发 |
| 更新策略 | 普通(可稍后)/ 强制(不可跳过) |
| 更新通道 | 稳定 / 测试通道分流 |
| 灰度发布 | 按比例逐步放量 |
| 回滚 | 问题版本置废弃 + 发修复版 |
6. 技术架构
后端 Spring Boot 3.2.1 + MyBatis Plus;版本元数据存 app_versions,灰度比例 / 强更标志 / 通道为字段;客户端经 REST 拉取最新版。
7. 系统特点
- 灰度比例可调,问题版本快速止血
- 强制更新阻断旧版继续使用
- 旧包保留以备回滚(见正文「回滚处理」)
8. 应用场景
服务提供商为多平台客户端推送更新;灰度验证后全量;线上事故时回滚到上一稳定版。
9. 竞品对比
| 维度 | 本模块 | 手工通知更新 |
|---|---|---|
| 自动检查 | ✅ | ❌ |
| 灰度放量 | ✅ 按比例 | ❌ |
| 强制更新 | ✅ | ⚠️ |
| 回滚 / 修复版 | ✅ | ⚠️ |
10. 配置参考
更新策略 / 通道 / 灰度比例在版本管理页配置;客户端检查间隔(默认 24h)由客户端侧配置。部署见 安装部署。
11. 性能指标
检查更新为轻量元数据查询(Redis 可缓存最新版本,毫秒级);下载吞吐取决于 Nginx 分发。
12. 测试覆盖
更新策略路由(普通 / 强制)、灰度命中判定、废弃 / 回滚切换由后端集成 + 单测覆盖。
13. 安全考虑
- 更新策略变更需 ADMIN / DEALER 权限 + JWT
- 下载后 SHA-256 校验防中间人替换
- 灰度 / 回滚操作写
device_logs审计
14. 故障排除
| 症状 | 可能原因 | 处理 |
|---|---|---|
| 灰度用户未收到 | 比例过低 / 未命中分桶 | 调高灰度比例 |
| 回滚后客户端仍升级 | 旧版未置废弃 | 问题版本状态改为废弃 |
| 强更被跳过 | 策略设成普通 / 未设最低兼容版本 | 开启强制更新并设最低兼容版本 |
15. 关键文件
| 资源 | 说明 |
|---|---|
app_versions 表 | 通道 / 灰度 / 强更字段 |
/api/app-versions/latest | 最新版查询 API |
| 前端「APP 版本管理」页 | 策略 / 灰度 / 回滚操作 |
16. 使用示例
bash
# 客户端检查最新版本(按平台)
curl "http://localhost:8080/api/app-versions/latest?platform=windows"