feat: add startup forced update check
This commit is contained in:
+20
-2
@@ -63,11 +63,13 @@ cmshopee\
|
||||
APP_NAME = "蝦皮圈優化助手"
|
||||
APP_CODE_NAME = "cmshopee"
|
||||
APP_VERSION = "0.1.0"
|
||||
APP_UPDATE_CHECK_URL = "https://cm.833729.com/api/v1/client/releases/latest?platform=windows"
|
||||
```
|
||||
|
||||
规则:
|
||||
|
||||
- 修改版本号只改 `app/version.py` 的 `APP_VERSION`。
|
||||
- 线上版本检查接口只改 `app/version.py` 的 `APP_UPDATE_CHECK_URL`;当前正式接口为 `https://cm.833729.com/api/v1/client/releases/latest?platform=windows`。如需本地开发临时跳过启动检查,可把该值置空。
|
||||
- GUI 窗口标题读取同一版本源,显示为 `蝦皮圈優化助手 v0.1.0`。
|
||||
- 打包脚本读取同一版本源生成发布目录、压缩包和 `version.txt`。
|
||||
- 禁止在 GUI、构建脚本或文档示例之外重复硬编码不同版本号。
|
||||
@@ -113,8 +115,8 @@ T-544 第一版目标是**启动时检查是否必须升级**,但仍不做自
|
||||
|
||||
客户端启动流程:
|
||||
|
||||
1. `appconfig.prepare_data_dir()` 成功后、创建 `MainWindow` 前,请求服务器版本接口。
|
||||
2. 当前版本从 `app/version.py` 的 `APP_VERSION` 读取。
|
||||
1. `appconfig.prepare_data_dir()` 成功后、创建 `MainWindow` 前,请求 `app/version.py` 中 `APP_UPDATE_CHECK_URL` 指向的服务器版本接口。
|
||||
2. 当前版本从 `app/version.py` 的 `APP_VERSION` 读取;`APP_UPDATE_CHECK_URL` 为空时跳过检查并允许进入软件,用于本地开发或尚未配置线上接口的构建。
|
||||
3. 如果服务器明确返回“当前版本必须升级”,弹中文阻断框,不进入主界面。
|
||||
4. 弹窗只提供「下载新版」和「退出程序」。点击「下载新版」用系统浏览器打开下载地址;用户下载后按第六节手动覆盖程序文件。
|
||||
5. 网络失败、接口超时、JSON 非法或字段缺失时,第一版允许进入软件;只记录本地诊断日志或给低打扰提示,避免服务器故障导致所有用户不可用。
|
||||
@@ -132,6 +134,22 @@ T-544 第一版目标是**启动时检查是否必须升级**,但仍不做自
|
||||
}
|
||||
```
|
||||
|
||||
客户端同时兼容当前线上接口返回结构:
|
||||
|
||||
```json
|
||||
{
|
||||
"platform": "windows",
|
||||
"release": {
|
||||
"version": "0.1.0",
|
||||
"download_url": "https://example.com/cmshopee-0.1.0-portable.zip",
|
||||
"sha256": "",
|
||||
"release_notes": "发布说明"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
映射规则:`release.version` 作为 `latest_version`,`release.download_url` 作为下载地址,`release.sha256` 作为校验值,`release.release_notes` 作为弹窗说明。若该结构未返回 `min_supported_version` 或 `force_update=true`,客户端只记录可用新版本信息,不会阻断启动。
|
||||
|
||||
客户端判定规则:
|
||||
|
||||
- `APP_VERSION < min_supported_version`:必须升级。
|
||||
|
||||
Reference in New Issue
Block a user