76 lines
4.1 KiB
Plaintext
76 lines
4.1 KiB
Plaintext
客户端文档入口
|
||
==============
|
||
|
||
你第一次打开 update-client/Docs 时,先看这一份。这里告诉你每份文档是干什么的,以及不同角色应该从哪里开始。
|
||
|
||
文档阅读顺序
|
||
============
|
||
|
||
1. 01-客户端接入打包部署指南.md
|
||
适合 SDK 接入方、测试人员和交付人员。按“生成 SDK -> 放进业务软件 -> 生成配置 -> 联调 -> 打最终包”的顺序写。
|
||
|
||
2. 02-编译环境和第三方依赖说明.md
|
||
适合需要编译 Launcher、Updater、Bootstrap 的人。说明 Windows/Linux 下 Qt、OpenSSL、thirdparty/ 和 CMake 怎么准备。
|
||
|
||
3. ../i18n/ReadMe.txt
|
||
适合维护界面文案的人。说明新增 tr() 后怎么更新 .ts、生成 .qm,并把翻译文件打进 qrc。
|
||
|
||
常用任务入口
|
||
============
|
||
|
||
如果你只是拿到 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 读取。
|
||
如果 config/app_config.json 内容被修改,下一次启动时会按解析后的 JSON 内容 SHA256 判断变化并重新导入注册表。
|
||
非空 app_config.json 成功导入注册表后会自动清空为 {},文件保留不删除,方便下次直接粘贴管理后台生成的新配置。
|
||
Windows 注册表位置:HKEY_CURRENT_USER\Software\Marsco\UpdateClientSDK\installations\<安装目录SHA256>\config。
|
||
Linux 配置位置由 Qt QSettings 决定,通常在当前用户 home 目录的 .config/Marsco/UpdateClientSDK.conf 一类路径下。
|
||
如果检测到 app_config.json 发生变化,SDK 会删除 config/client_identity.dat、config/version_policy.dat 和 config/local_state.json,避免继续使用旧授权身份、旧策略或旧防回滚状态;目录不可写时会弹出管理员权限确认框。
|
||
正常启动成功后不要删除这些状态文件,它们用于本地身份、离线策略和安全状态。
|
||
首次运行时如果该文件不存在且发现旧 client.ini,会自动迁移。
|
||
|
||
接入新软件时通常需要修改:
|
||
|
||
1. app_id、app_name、channel、current_version。
|
||
2. api_base_url、client_token、license_key、launch_token。
|
||
3. main_executable:团队业务主程序文件名。
|
||
4. launcher_executable、updater_executable、bootstrap_executable。
|
||
5. health_check_timeout_ms:升级后等待业务程序健康确认的毫秒数,最小 1000。
|
||
|
||
Windows 完整格式参考 update-client/config/app_config.example.json;Linux 完整格式参考 update-client/config/app_config.linux.example.json。
|
||
运行时生成的 client_identity.dat、local_state.json 等文件不得打入通用 SDK 模板。app_config.json 可以作为部署模板,但不要把某台机器运行后产生的临时状态混进去。
|
||
|
||
Windows 发布打包:
|
||
|
||
1. 使用 Release 配置编译全部客户端程序。
|
||
2. 先完成当前版本在线校验,确认 out/bin/update/manifest_cache 中存在对应的签名 Manifest。
|
||
3. 准备一份实际 app_config.json,确认其中包含正确的 License Key、当前版本和业务程序名。
|
||
4. 在 PowerShell 执行:
|
||
powershell -ExecutionPolicy Bypass -File .\scripts\package-client.ps1 -ConfigFile .\config\app_config.json
|
||
5. 输出位于 dist/UpdateClient 和 dist/UpdateClient.zip。
|
||
|
||
脚本会拒绝 Debug DLL、PDB、嵌套重复主程序和缺少签名 Manifest 的发布源目录。
|