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

4.0 KiB

离线、打包与许可

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 时必须遵守:

发行前需要法务或产品负责人确认最终分发模式。技术实现至少保证:

  • licenses/ 保存完整、未修改的 Runtime 许可文本。
  • 安装包包含 Runtime 许可和版权声明。
  • About/关于 页面提供第三方许可入口。
  • 不隐藏用户需要合法 Spine 许可的前提。
  • 不分发 Spine Editor、激活信息或 Editor 更新文件。
  • Runtime 插件不作为通用 SDK 对外提供开发接口。

6. 官方测试资源

已确认规则:

  • 官方 GitHub 仓库资源只用于开发、兼容性测试和 CI。
  • 官方测试资源不进入最终安装包。
  • 打包清单不包含 tests/fixtures/external/
  • 发行检查使用路径、文件名和 SHA-256 禁止列表防止误打包。
  • 测试报告可记录资源 case id 和哈希,但不嵌入资源文件。

7. 第三方依赖清单

每个依赖记录:

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. 发行目录白名单

打包采取白名单而不是“复制整个构建目录”:

application executable
Qt runtime libraries/plugins
dts runtime plugins
icons/translations/shaders
licenses/notices
user documentation

明确排除:

tests/
official sample assets
source repository metadata
developer caches
temporary recovery jobs
Spine Editor binaries
activation information
debug-only symbols(独立保存,不进入普通安装包)