返回列表 发布新帖回复

[七星系列] 七星200+源码工具与热更新篇——资源更新、版本号生成与CDN部署实用指南

774 6
发表于 2025-5-22 16:20:19 | 查看全部 阅读模式
在日常开发中,最令人头痛的不是功能bug,而是资源更新:
  • 改了个图标,要让全服生效?
  • 加了新皮肤,客户端怎么不用重新下载包?
  • 想接入CDN自动更新,结果资源路径乱套?

别慌,这篇就是为了解决这些痛点。我们来拆解 工具/ 目录里隐藏的“热更新能力”和“版本控制逻辑”。

一、目录结构总览(工具相关)
源码中的 工具/ 目录结构如下:

工具/
├── cdn/                      # 生成的热更资源包目录
├── 发布update/               # 版本号生成、更新脚本目录
│   ├── version.json          # 当前资源版本信息
│   ├── version_generator.js  # 热更核心脚本
│   ├── manifest_generator.js # manifest配置生成器(部分版本)
│   └── 上传.bat              # 一键上传脚本(需配置)
├── PC端可用库/               # 客户端联调依赖
└── README.md                 # 工具说明文档


二开源码区-七星200+源码工具与热更新篇——资源更新、版本号生成与CDN部署实用指南(1)

工具截图



二、核心工具:version_generator.js✅ 作用是什么?
简单来说,这个脚本会扫描你前端资源目录(如 res/ 和 src/),为每一个文件生成:
  • 文件路径
  • MD5签名
  • 文件大小

然后写进一个名为 version.json 的文件里。
前端项目(尤其是 Cocos2d-JS)在启动时会读取 version.json,判断哪些资源需要从 CDN 拉最新的,哪些可以用缓存。

📌 示例结构(version.json):
{
  "res/logo.png": "a8cf4...123a",
  "res/bg.jpg": "9e9ab...48bc",
  "src/game.js": "29fbc...ccce"
}


每次更新资源后重新生成 version.json,前端启动时对比 hash 值来决定是否热更。

三、资源更新流程建议💡 推荐使用流程:
  • 修改了前端代码或图片
  • 使用 version_generator.js 重新生成 version.json
  • 将资源上传至 CDN 或服务器(可用脚本:上传.bat)
  • 启动前端,指向最新CDN资源路径
  • 用户打开时自动拉取差异资源


四、CDN 接入说明✅ 热更依赖两类 manifest 文件:
  • project.manifest
  • version.manifest

部分版本使用 manifest_generator.js 来生成这两份配置。
内容包括:
{
  "packageUrl": "http://cdn.example.com/update/",
  "remoteManifestUrl": "http://cdn.example.com/update/project.manifest",
  "remoteVersionUrl": "http://cdn.example.com/update/version.manifest",
  "version": "1.0.7",
  "assets": {
    "res/bg.jpg": {
      "md5": "9a88cd...",
      "size": 10240
    }
  }
}


二开源码区-七星200+源码工具与热更新篇——资源更新、版本号生成与CDN部署实用指南(2)

CDN文件


🔧 配置路径位置:
你需要在前端项目(如 client/main.js)或 TestConfig.js 中,手动指定 manifest 的远程路径。

var updateUrl = "http://cdn.example.com/update/";



五、上传脚本说明
部分目录中有内置的 上传.bat 文件(或上传到七牛、阿里云OSS的脚本),你可以:
  • 配置自己的 CDN 密钥
  • 一键上传 cdn/ 中资源目录
  • 搭配版本号打标进行灰度或全量推送


六、常见问题与踩坑提示
问题可能原因解决建议
启动报“资源md5不一致”本地 version.json 未更新修改资源后记得重跑生成器
热更新失败跳过资源manifest 路径写错确认路径是否 http/https 一致
客户端缓存旧资源本地缓存未清理可调试阶段清空 localStorage 或版本号强制刷新
安卓 App 不更新资源未集成 manifest 热更逻辑确认客户端是否支持 AssetManager


七、你可以做的拓展操作
  • 自定义版本号生成策略(如按日期自动生成)
  • 把 version_generator.js 挂在 Git 钩子上,每次提交自动更新
  • 接入 CI/CD 流程(如 Jenkins、GitHub Actions)实现热更新自动部署


八、小结
相比传统“整包更新”的方式,这套热更工具更适合快速开发与版本迭代高频的项目,尤其是:
  • 需要频繁调整UI/资源
  • 面向多个运营地区、多个皮肤版本
  • 希望降低用户重新下载成本

只要你正确使用 version_generator.js 并配置好 CDN 路径,资源更新就像发微信一样简单。
下载地址:
游客,如果您要查看本帖隐藏内容请回复


评论6

狂刷排名Lv.3 发表于 2025-5-23 00:23:54 来自手机 | 查看全部
🚀顶起!
chjianLv.4 发表于 2025-5-23 11:37:31 | 查看全部
🚀顶起!
edaoleLv.3 发表于 2025-5-23 15:52:17 | 查看全部
🏆论坛高手多,佩服!
aylueLv.4 发表于 5 天前 来自手机 | 查看全部
🎯技术贴不错,学到了!
axwwwLv.4 发表于 3 天前 | 查看全部
💬有空一起交流下~
wryipLv.2 发表于 昨天 15:19 | 查看全部
🏆论坛高手多,佩服!

回复

请选择回复
🙏感谢分享,好内容!
📌收藏了,慢慢看。
👏支持楼主,干得漂亮!
🎯技术贴不错,学到了!
🤝多谢无私分享!
🌟内容清晰,赞!
🏆论坛高手多,佩服!
🧠方案不错,值得试试!
🔧这个版本能兼容吗?
📄有注释或文档吗?
🐛运行报错,求指点!
✅实测可用,好用!
🛠设计挺好,可再优化。
💬有空一起交流下~
📖已阅,期待更多更新!
🆕新手福利,感谢!
🌍好贴越来越多,顶!
🚀教程有用,搭建成功!
📌留名关注!
🔍学习中,再来请教!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

admin@78910j.cn

发布帖子最高可获得95%佣金酬劳!
邀请他人发帖,最高可获得10%额外奖励,
邀请越多,收益越高!点击查看 👈
  • 扫一扫手机端
Copyright © 2001-2025 同花论坛 版权所有 All Rights Reserved. 辽ICP备2024034080号| 网站地图
关灯 在本版发帖
在线客服
返回顶部
快速回复 返回顶部 返回列表