跳到主要内容
版本:v4

游戏版本更新规则

本文档介绍 TapTap PC 在执行游戏版本升级时对游戏包体中文件与目录的新增、删除与修改策略。
请开发者遵循下列规则,确保增量/差量补丁能够正确生成并高效分发。

如果游戏的版本更新由自带启动器完成(不依赖 TapTap),请同时阅读 启动器更新上报接入指南,通过 .taptap/meta.json 避免启动器更新后 TapTap 仍提示「更新游戏」。

文件规则

旧版本文件状态新版本文件状态TapTap 行为说明
❌ 不存在✅ 存在下载新文件
✅ 存在❌ 不存在删除文件不校验旧版本文件内容(即使在运行期被修改,也会删除)
✅ 存在✅ 存在且内容相同忽略不校验旧版本文件内容(即使在运行期被修改,也会忽略)
✅ 存在✅ 存在且内容不同仅下载差异块不校验旧版本文件内容;请确保 旧版本文件在运行期未被改写
❌ 不存在❌ 不存在保留文件运行时生成的文件不会被删除/修改

目录规则

包体中的目录(包括空目录)会随包体一起被记录。新旧版本之间的目录差异按以下规则处理:

旧版本目录状态新版本目录状态TapTap 行为说明
❌ 不存在✅ 存在创建空目录安装/更新前 TapTap 会按新版本目录结构提前创建好整个目录树
✅ 存在❌ 不存在递归删除整个目录目录下任何运行期写入的内容(日志、缓存、用户数据等)也会一并被删除
✅ 存在✅ 存在保留目录本身不动;目录内文件按上节「文件规则」处理
警告

若某个目录在新版本中被移除,TapTap 会通过 RemoveAll 整体清理,目录下运行期写入的文件也会被一并删除。涉及用户数据/存档的目录,请从一开始就放在包体之外的专用目录,避免后续版本调整目录结构时被误删。

开发者最佳实践

存档与用户数据处理

  • 游戏存档 放置于专用目录(例如 Saves/),并在打包时排除该目录。
  • 玩家个性化配置(键位、画质、语言等)放置于专用目录(例如 UserSettings/),并排除在包体之外。
  • 切勿把用户数据放进包体已包含的目录——若该目录在后续版本被移除,目录下运行期写入的数据将一并被清理。

包内容建议

  • 只读原则:包体内文件运行期保持只读,禁止动态改写。
  • 路径稳定:相同资源在不同版本中保持一致的相对路径与文件名;目录结构尽量保持稳定,避免在版本间整体重命名或删除目录。
  • 移除冗余资源:删除不再使用的旧资源文件,减小补丁体积。

增量/差量更新注意事项

  • 当文件在新旧版本中同时存在时,TapTap 自动检测差异,仅下载变动数据块
  • 为获得最佳差量效果,请遵循以下规范:
    1. 相同文件保持路径与文件名不变。
    2. 不在目录结构中携带版本号信息。
    3. 旧版本文件在运行期不得被改写。
    4. 通过版本控制系统精确管理资源变动,避免临时文件进入包体。

常见问题 FAQ

Q1: 为什么增量补丁大小仍然接近完整包?
请检查旧版本文件是否在运行期被改写,或资源路径/文件名是否发生变动。

Q2: 运行期动态生成的日志/缓存会被删除吗?
取决于所在目录:

  • 若目录仍在新版本包体中,目录内运行期生成的文件不会被删除或修改。
  • 若目录在新版本中被整体移除,TapTap 会递归删除整个目录,目录内的运行期文件也会被一并清理。

建议把日志、缓存、用户数据放到包体之外的专用目录,从根本上避开版本切换时的目录回收。