diff --git a/Docs/ReadMe.txt b/Docs/00-先读我-客户端文档入口.txt similarity index 64% rename from Docs/ReadMe.txt rename to Docs/00-先读我-客户端文档入口.txt index 693537a..24b24aa 100644 --- a/Docs/ReadMe.txt +++ b/Docs/00-先读我-客户端文档入口.txt @@ -1,24 +1,46 @@ 客户端文档入口 ============== -本目录用于保存 update-client 客户端子仓库的说明文档。 +你第一次打开 update-client/Docs 时,先看这一份。这里告诉你每份文档是干什么的,以及不同角色应该从哪里开始。 -建议阅读顺序: +文档阅读顺序 +============ -1. 客户端部署说明.md - 面向接入和部署,说明 SDK 是什么、怎么放到业务软件目录、app_config.json 怎么填、如何打包。 +1. 01-客户端接入打包部署指南.md + 适合 SDK 接入方、测试人员和交付人员。按“生成 SDK -> 放进业务软件 -> 生成配置 -> 联调 -> 打最终包”的顺序写。 -2. 第三方依赖说明.md - 面向编译环境,说明 Windows/Linux 下 Qt、OpenSSL、thirdparty/ 和 CMake 环境变量怎么配置。 +2. 02-编译环境和第三方依赖说明.md + 适合需要编译 Launcher、Updater、Bootstrap 的人。说明 Windows/Linux 下 Qt、OpenSSL、thirdparty/ 和 CMake 怎么准备。 3. ../i18n/ReadMe.txt - 面向国际化维护,说明新增 tr() 文案后如何更新 .ts、生成 .qm,以及 .qrc 如何内嵌翻译资源。 + 适合维护界面文案的人。说明新增 tr() 后怎么更新 .ts、生成 .qm,并把翻译文件打进 qrc。 -4. 本 ReadMe.txt - 记录客户端配置文件和打包脚本的简要说明。 +常用任务入口 +============ +如果你只是拿到 SDK 接入业务软件: -客户端配置说明 +```text +读 01-客户端接入打包部署指南.md 的“三、你:把 SDK 放进业务软件目录”和“四、你:生成并填写 app_config.json”。 +``` + +如果你要重新打 Windows SDK 包: + +```powershell +cd update-client +.\scripts\package-sdk.ps1 -SourceDir .\out\bin -OutputDir .\dist\UpdateClientSDK -ZipFile .\dist\UpdateClientSDK.zip -SdkVersion 0.1.0 +``` + +如果你要重新打 Linux SDK 包: + +```bash +cd update-client +cmake --preset linux-x64-release +cmake --build --preset linux-x64-release +bash ./scripts/package-sdk.sh --source-dir ./out/linux/bin --output-dir ./dist/UpdateClientSDK-linux --archive ./dist/UpdateClientSDK-linux.tar.gz --sdk-version 0.1.0 +``` + +客户端配置速记 ============== config/app_config.json 是部署配置源文件。Launcher / Updater / MainApp 启动时会把它同步到当前用户的 QSettings 配置区;Windows 下对应注册表,Linux 下对应用户配置文件。后续运行配置优先从 QSettings 读取。 diff --git a/Docs/客户端部署说明.md b/Docs/01-客户端接入打包部署指南.md similarity index 93% rename from Docs/客户端部署说明.md rename to Docs/01-客户端接入打包部署指南.md index 2c370e6..6abb6e2 100644 --- a/Docs/客户端部署说明.md +++ b/Docs/01-客户端接入打包部署指南.md @@ -1,17 +1,28 @@ -# UpdateClientSDK 客户端部署说明 +# UpdateClientSDK 客户端接入、打包和部署指南 本文按“维护者打包 SDK -> 你接入业务软件 -> 联调测试 -> 生成最终客户端包”的顺序说明。你拿到这份文档后,按章节一步一步做即可。 +## 先看这里:你要做哪件事 + +| 你的目标 | 直接看哪一节 | +| --- | --- | +| 重新生成给别人用的 SDK 包 | 二、维护者:生成 SDK 包 | +| 把 SDK 放到 SimCAE 或其他业务软件目录 | 三、你:把 SDK 放进业务软件目录 | +| 从后台生成 `app_config.json` | 四、你:生成并填写 app_config.json | +| 给业务主程序接入启动保护代码 | 五、你:业务主程序接入要求 | +| 验证升级、回滚、健康检查 | 六、你:联调测试 | +| 生成最终交付给用户的客户端包 | 七、维护者:生成最终客户端包 | + ## 一、这个 SDK 是什么 UpdateClientSDK 是“独立更新器 SDK / 升级运行时 SDK”。它不是传统的 `include + lib` 形态,而是把自动升级能力做成一组独立程序,让业务软件通过这些程序完成检查更新、下载、安装、回滚和启动保护。 SDK 核心程序: -- `Launcher.exe`:用户入口。检查版本、验证授权和策略,决定直接启动业务主程序或进入升级流程。 -- `Updater.exe`:下载、校验、备份、安装、健康确认、提交或回滚。 -- `Bootstrap.exe`:处理运行中可能被占用的 EXE/DLL 替换。 -- `config/app_config.json`:部署配置源文件。启动时会同步到当前 Windows 用户的注册表,运行时优先读注册表。 +- `Launcher.exe` / `Launcher`:用户入口。检查版本、验证授权和策略,决定直接启动业务主程序或进入升级流程。 +- `Updater.exe` / `Updater`:下载、校验、备份、安装、健康确认、提交或回滚。 +- `Bootstrap.exe` / `Bootstrap`:处理运行中可能被占用的 EXE/DLL 或 Linux 可执行文件替换。 +- `config/app_config.json`:部署配置源文件。启动时会同步到当前用户的 QSettings 配置区;Windows 下对应注册表,Linux 下对应用户配置文件。 - `config/manifest_public_key.pem`:Manifest 签名公钥,用来验证服务端发布包没有被篡改。 ## 二、维护者:生成 SDK 包 diff --git a/Docs/第三方依赖说明.md b/Docs/02-编译环境和第三方依赖说明.md similarity index 93% rename from Docs/第三方依赖说明.md rename to Docs/02-编译环境和第三方依赖说明.md index 0be4442..7288252 100644 --- a/Docs/第三方依赖说明.md +++ b/Docs/02-编译环境和第三方依赖说明.md @@ -1,4 +1,4 @@ -# 第三方依赖说明 +# 客户端编译环境和第三方依赖说明 `thirdparty/` 是本机依赖目录,已经被 `.gitignore` 忽略,不会提交到 Git。 @@ -9,6 +9,12 @@ Windows 下推荐使用 Qt 5.15.2 msvc2019_64 和 OpenSSL-Win64;Linux 下使用系统安装的 Qt/OpenSSL 开发包。 +先看结论: + +- Windows:配置 Qt 环境变量,把 OpenSSL 复制到 `thirdparty/OpenSSL-Win64`。 +- Linux:用 apt 安装 Qt/OpenSSL 开发包。 +- `thirdparty/` 只放本机依赖,不提交 Git。 + ## 1. Qt 配置 ### Windows