134 lines
4.0 KiB
Markdown
134 lines
4.0 KiB
Markdown
# 离线、打包与许可
|
|
|
|
## 1. 离线定义
|
|
|
|
DateToSpine 的“全功能离线”定义为:
|
|
|
|
- 应用本身不建立网络连接。
|
|
- 不使用 CDN、远程字体、远程 Shader、WebView 在线页面或在线 API。
|
|
- 不在运行时下载 Qt、Runtime、图片解码器或其他依赖。
|
|
- 不上传用户资源、路径、日志或统计数据。
|
|
- 不包含自动更新和联网遥测。
|
|
- 用户已经准备好的匹配版本 Spine Editor 可在断网环境中完成转换。
|
|
|
|
Spine Editor 是外部前置软件。DateToSpine 不控制 Editor 自身的授权策略,但必须在断网验收中验证既有激活和已缓存版本能够完成流程。
|
|
|
|
## 2. 构建期与运行期网络
|
|
|
|
- 开发机可以联网取得依赖和官方测试资源。
|
|
- 正式依赖必须锁定版本和校验值。
|
|
- 可复现构建应支持从内部或本地依赖缓存构建。
|
|
- 最终应用运行时不得使用网络。
|
|
- 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(独立保存,不进入普通安装包)
|
|
```
|