Files
SpineParticlesWeb/DateToSpine/docs/08-离线打包与许可.md
T
2026-09-07 21:40:29 +08:00

135 lines
4.3 KiB
Markdown

# 离线、打包与许可
## 1. 离线定义
DateToSpine 的“全功能离线”定义为:
- 应用本身不建立网络连接。
- 不使用 CDN、远程字体、远程 Shader、WebView 在线页面或在线 API。
- 不在运行时下载 Qt、Runtime、图片解码器或其他依赖。
- 不上传用户资源、路径、日志或统计数据。
- 不包含自动更新和联网遥测。
- 用户已经准备好的匹配版本 Spine Editor 可在断网环境中完成转换。
Spine Editor 是外部前置软件。DateToSpine 不控制 Editor 自身的授权策略,但必须在断网验收中验证既有激活和已缓存版本能够完成流程。
## 2. 构建期与运行期网络
- 五套正式 Spine Runtime 源码直接随主仓库提供,不使用 Submodule、FetchContent 或构建期下载。
- 内网环境克隆主仓库后即可取得完整 Runtime;若文件缺失,CMake 直接报错,不尝试联网补齐。
- Qt、CMake 和编译器属于预先安装的构建工具,不由本项目联网安装。
- 官方测试资源只存在于开发源码树,不进入最终安装包。
- 最终应用运行时不得使用网络。
- CI 下载的官方测试资源不进入打包阶段的输入集合。
## 3. macOS 打包
目标:
- Apple Silicon 原生包。
- Intel 或 Universal 2 是否首发,由原型性能和构建环境决定。
- `.app``.dmg`
- Qt framework、platform plugin、image plugin、Runtime 插件和本地资源完整部署。
- 正式发行执行代码签名和 notarization;这是发布流程,不是最终应用运行时联网依赖。
应用不得修改用户的 Spine.app 或其缓存。
## 4. Windows 打包
目标:
- Windows 10/11 x64。
- MSVC 2022 v143。
- 使用 `/MD` 与 Qt 官方构建一致。
- 部署 MSVC Runtime、Qt platform plugin、imageformats 和 Runtime 插件。
- 安装包格式在原型后从 MSIX、WiX/MSI 或 Inno Setup 中确定。
- 正式发行建议代码签名。
最终用户不需要安装 CMake、Visual Studio 或 Qt SDK。
## 5. Runtime 许可
项目集成官方 Spine Runtimes 时必须遵守:
- [Spine Runtimes License Agreement](https://esotericsoftware.com/spine-runtimes-license)
- [Spine Editor License Agreement](https://esotericsoftware.com/spine-editor-license)
发行前需要法务或产品负责人确认最终分发模式。技术实现至少保证:
- `licenses/` 保存完整、未修改的 Runtime 许可文本。
- 安装包包含 Runtime 许可和版权声明。
- About/关于 页面提供第三方许可入口。
- 不隐藏用户需要合法 Spine 许可的前提。
- 不分发 Spine Editor、激活信息或 Editor 更新文件。
- Runtime 插件不作为通用 SDK 对外提供开发接口。
## 6. 官方测试资源
已确认规则:
- 官方 GitHub 仓库资源只用于开发、兼容性测试和 CI。
- 官方测试资源不进入最终安装包。
- 打包清单不包含 `tests/fixtures/external/`
- 发行检查使用路径、文件名和 SHA-256 禁止列表防止误打包。
- 测试报告可记录资源 case id 和哈希,但不嵌入资源文件。
## 7. 第三方依赖清单
每个依赖记录:
```text
name
version/commit
source URL
license
modified or unmodified
linked statically or dynamically
included platforms
notices path
```
至少包括:
- Qt 6
- Spine Runtimes 3.8/4.0/4.1/4.2/4.3
- 测试框架
- 可能引入的日志或打包依赖
新增依赖必须经过:离线可部署性、许可证、维护状态、体积和安全评审。
## 8. 网络禁止措施
- 不链接应用层 HTTP 客户端,除非未来需求重新评审。
- 资源加载器只接受本地文件协议。
- 代码扫描阻止 CDN URL 和动态依赖下载逻辑。
- 集成测试在网络阻断环境运行。
- 打包后执行连接监控测试。
文档中的官方链接仅供人阅读,不会被应用自动访问。
## 9. 发行目录白名单
打包采取白名单而不是“复制整个构建目录”:
```text
application executable
Qt runtime libraries/plugins
dts runtime plugins
icons/translations/shaders
licenses/notices
user documentation
```
明确排除:
```text
tests/
official sample assets
source repository metadata
developer caches
temporary recovery jobs
Spine Editor binaries
activation information
debug-only symbols(独立保存,不进入普通安装包)
```