3.3 KiB
3.3 KiB
Hub 更新客户端打包成 SDK
本文只说明如何从 SIMCAE/update-client 生成给 SIMCAE 开发者使用的 SDK 包。SIMCAE 如何拿这个 SDK 打客户安装器和交付包,见项目根目录的 客户端部署.md。
一、SDK 包含什么
SDK 用来把 Hub 更新客户端接入 SIMCAE 安装包。
| 内容 | 作用 |
|---|---|
Launcher.exe |
客户日常启动入口,检查整包更新并启动主程序 |
Updater.exe |
拉取 Manifest、下载发布包、校验 SHA-256、准备安装 |
Bootstrap.exe |
替换运行中文件时接管安装 |
| Qt 运行库 | 可选,给没有单独 Qt 运行环境的接入方使用 |
| 文档 | 说明客户端目录结构、配置字段和接入方式 |
SDK 不包含最终客户配置文件,例如 app_config.json、server_config.json、server_config.qrc、manifest_public_key.pem。这些文件由服务端在上传客户软件包或 Qt IFW 交付包时生成或注入。
二、编译 Release
先进入 SIMCAE 仓库下的 update-client 目录。如果当前已经在 SIMCAE 仓库根目录:
cd .\update-client
然后执行:
cmake --preset x64-release
cmake --build --preset x64-release
编译完成后,Release 产物通常位于 out/bin/Release。
检查核心程序:
Test-Path .\out\bin\Release\Launcher.exe
Test-Path .\out\bin\Release\Updater.exe
Test-Path .\out\bin\Release\Bootstrap.exe
预期都返回 True。
三、打包不带 Qt 运行库的 SDK
适用于接入方已经有 Qt 运行环境,或希望自己控制 Qt DLL 的情况。
.\scripts\package-sdk.ps1 `
-SourceDir .\out\bin\Release `
-OutputDir .\dist\SimCAEHubUpdateClientSDK `
-ZipFile .\dist\SimCAEHubUpdateClientSDK.zip `
-SdkVersion 0.1.0
输出:
| 输出 | 说明 |
|---|---|
dist\SimCAEHubUpdateClientSDK |
SDK 展开目录 |
dist\SimCAEHubUpdateClientSDK.zip |
可交给 SIMCAE 开发者的 SDK 压缩包 |
四、打包带 Qt 运行库的 SDK
适用于接入方不想单独准备 Qt DLL,或者希望拿到后能直接放进安装包。
.\scripts\package-sdk.ps1 `
-SourceDir .\out\bin\Release `
-OutputDir .\dist\SimCAEHubUpdateClientSDK-with-qt `
-ZipFile .\dist\SimCAEHubUpdateClientSDK-with-qt.zip `
-SdkVersion 0.1.0 `
-IncludeQtRuntime
输出:
| 输出 | 说明 |
|---|---|
dist\SimCAEHubUpdateClientSDK-with-qt |
带 Qt 运行库的 SDK 展开目录 |
dist\SimCAEHubUpdateClientSDK-with-qt.zip |
推荐交给 SIMCAE 开发者的 SDK 压缩包 |
五、打包后检查
Test-Path .\dist\SimCAEHubUpdateClientSDK-with-qt\bin\Launcher.exe
Test-Path .\dist\SimCAEHubUpdateClientSDK-with-qt\bin\Updater.exe
Test-Path .\dist\SimCAEHubUpdateClientSDK-with-qt\bin\Bootstrap.exe
Test-Path .\dist\SimCAEHubUpdateClientSDK-with-qt.zip
预期都返回 True。
六、不要提交的内容
SIMCAE/update-client/.gitignore 已忽略这些本地内容:
thirdparty/out/dist/*.exe*.dll*.zipconfig/app_config.jsonconfig/client_identity.datconfig/local_state.jsonconfig/version_policy.dat
提交前看一下:
git status --short
不要把本地依赖、编译产物、SDK ZIP、客户配置和运行状态提交进仓库。