4.0 KiB
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(独立保存,不进入普通安装包)