应用发布
应用发布功能用于管理ChainlessChain客户端应用的版本发布流程,支持5个平台的统一版本管理。
发布流程
应用版本遵循以下生命周期:
草稿(DRAFT) → 测试(TESTING) → 发布(PUBLISHED) → 废弃(DEPRECATED)1. 创建版本
进入创建页面
登录厂家管理系统
→ 应用管理
→ 版本管理
→ 创建新版本填写版本信息
| 字段 | 说明 | 必填 | 示例 |
|---|---|---|---|
| 应用名称 | 客户端应用名 | ✅ | ChainlessChain Desktop |
| 版本号 | 语义化版本号 | ✅ | 5.0.2 |
| 目标平台 | 发布平台 | ✅ | Windows |
| 版本说明 | 更新内容描述 | ✅ | 修复已知问题,性能优化 |
| 最低兼容版本 | 最低可升级版本 | ❌ | 4.0.0 |
| 强制更新 | 是否强制更新 | ❌ | 否 |
2. 上传安装包
版本创建后,需要上传对应平台的安装包文件:
| 平台 | 文件格式 | 大小限制 |
|---|---|---|
| Windows | .exe / .msi | 500MB |
| macOS | .dmg / .pkg | 500MB |
| Linux | .AppImage / .deb | 500MB |
| Android | .apk | 200MB |
| iOS | .ipa | 200MB |
版本详情页
→ 上传安装包
→ 选择文件
→ 等待上传完成
→ 系统自动计算校验和(SHA-256)3. 提交测试
1. 确认安装包已上传
2. 点击"提交测试"
3. 版本状态变更为 TESTING
4. 通知测试团队进行验证4. 正式发布
测试通过后,将版本正式发布:
1. 在版本详情页点击"发布"
2. 确认发布信息
3. 版本状态变更为 PUBLISHED
4. 客户端自动检测到新版本支持的平台
| 平台 | 代码 | 说明 |
|---|---|---|
| Windows | WINDOWS | Windows 10/11 |
| macOS | MACOS | macOS 12+ |
| Linux | LINUX | Ubuntu 20.04+, Debian 11+ |
| Android | ANDROID | Android 8.0+ |
| iOS | IOS | iOS 15+ |
版本状态说明
| 状态 | 说明 | 可执行操作 |
|---|---|---|
| 草稿 (DRAFT) | 新创建,未提交测试 | 编辑、上传安装包、提交测试、删除 |
| 测试 (TESTING) | 测试中 | 发布、退回 |
| 已发布 (PUBLISHED) | 正式发布,用户可更新 | 废弃 |
| 已废弃 (DEPRECATED) | 不再提供下载 | 无 |
强制更新
设置强制更新后,低于此版本的客户端在启动时将强制要求更新:
- 进入版本详情
- 开启"强制更新"开关
- 设置最低兼容版本号
- 保存设置
注意
强制更新会影响所有低版本用户,请确保新版本已充分测试后再开启。
下载统计
在版本详情页可查看下载统计:
- 总下载量: 该版本累计下载次数
- 每日下载: 按日统计的下载趋势
- 平台分布: 各平台下载占比
注意事项
- 版本号必须遵循语义化版本规范(SemVer)
- 同一平台不能存在相同版本号
- 已发布的版本不能修改安装包
- 建议在非高峰时段发布新版本
- 发布前确保安装包完整性校验通过
附录:规范章节补全(v5.0.3.108)
为对齐项目用户文档标准结构,下列章节补齐若干未在正文中单独列出的视角。已在正文覆盖的章节在此段仅作简述并标注
见上文指引。
1. 概述
见正文「发布流程」。应用发布模块管理 5 平台(Windows / macOS / Linux / Android / iOS)安装包的版本发布全流程:创建版本 → 上传安装包 → 提交测试 → 正式发布,含强制更新与下载统计。
2. 核心特性
- 5 平台版本统一发布(DRAFT → TESTING → PUBLISHED → DEPRECATED 状态机)
- 强制更新开关 + 最低兼容版本(见正文「强制更新」)
- 实时下载统计(总量 / 每日 / 平台分布)
- 发布前 SHA-256 完整性校验
3. 系统架构
前端(Vue3 + Element Plus,APP 版本管理页)
│ REST /api/app-versions
▼
后端(Spring Boot 3.2.1 + Spring Security/JWT)
▼
MySQL 8.0(app_versions / app_downloads)+ Redis 7.0 + 安装包存储 + Nginx 分发4. 系统定位
厂家管理系统的多平台 APP 版本分发中枢,对接客户端自动更新(见 应用更新)。
5. 核心功能
| 步骤 | 状态变更 | 说明 |
|---|---|---|
| 创建版本 | → DRAFT | 填写版本号 / 平台 / 更新说明 |
| 上传安装包 | DRAFT | 见 应用上传 |
| 提交测试 | → TESTING | 进入测试通道验证 |
| 正式发布 | → PUBLISHED | 客户端可检测更新,可设强更 |
6. 技术架构
后端 Spring Boot 3.2.1 + MyBatis Plus + MySQL 8.0;前端 Vue 3 + Element Plus + Vite 5;APP 版本 API 8 个接口;安装包文件存储 + Nginx 下载。
7. 系统特点
- 版本状态机(草稿 / 测试 / 发布 / 废弃)防误发
- 已发布版本不可改安装包(强制创建新版本)
- 下载量实时入
app_downloads
8. 应用场景
设备厂家 / 服务提供商发布桌面与移动客户端新版本;经销商分发指定版本。
9. 竞品对比
| 维度 | 本模块 | 手工分发 |
|---|---|---|
| 多平台统一 | ✅ 5 平台 | ⚠️ 各自管理 |
| 强制更新 | ✅ | ❌ |
| 下载统计 | ✅ 实时 | ❌ |
| 状态机防误发 | ✅ | ❌ |
10. 配置参考
强制更新、最低兼容版本在版本详情配置;存储与下载路径见 安装部署 自定义配置。默认前端 http://localhost、API 文档 http://localhost:8080/api/swagger-ui.html。
11. 性能指标
发布为元数据操作(秒级);下载吞吐取决于 Nginx 静态分发与存储后端。大包上传见 应用上传 的分片上传(5MB/片、并发 3)。
12. 测试覆盖
APP 版本 API(8 接口)由后端集成测试覆盖;版本状态机流转 + 强制更新标志由单测断言。
13. 安全考虑
- 发布操作需 ADMIN / DEALER 权限(RBAC)+ JWT 鉴权
- 发布前 SHA-256 完整性校验(防损坏 / 篡改)
- 所有发布操作写
device_logs审计
14. 故障排除
| 症状 | 可能原因 | 处理 |
|---|---|---|
| 客户端收不到更新 | 未正式发布(非 PUBLISHED) | 确认状态 = 已发布 |
| 强制更新不生效 | 强更开关未开 / 最低兼容版本未设 | 版本详情开启强制更新 |
| 下载量不统计 | 走了非系统下载链路 | 用系统分发链接 |
15. 关键文件
| 资源 | 说明 |
|---|---|
app_versions 表 | 版本元数据 + 状态 + 强更字段 |
app_downloads 表 | 下载记录 |
/api/app-versions | APP 版本 REST API |
| 前端「APP 版本管理」页 | 发布操作界面 |
16. 使用示例
见正文「发布流程」四步。命令行健康检查:
curl http://localhost:8080/api/app-versions # 列出版本(需 JWT)