【GG插件】热更新

官方的思路非常好,确实是做了99.99%的关键工作,我这个插件其实也是站在官方的思路上,将C++的实现,迁移到TS上,同时完善剩下的0.01%工作,让这个事情变得更舒服。

这0.01%主要包括一些锦上添花的功能:

  • 构建后自动根据分包配置,生成热更新条目文件,不许需要调用额外的插件。
  • 渐进式发布、回滚、跨版本热更新、热更新CDN资源缓存解决
  • 自动版本管理。无需要在每次改动发布之前,都手动定义一个版本控制,然后才发布,只要构建后有差异,自动生成版本
  • 轻松支持分包热更新,包括划分哪些内容是子包,自动构建子包条目
  • zip全量更新支持,例如首次下载子包可以只下载一个子包的zip,而不是并发下载子包所包含的未知数量的散文件,极大减少下载并发数、IO操作等
  • …
1赞

支持楼主 造轮子的故事都知道 希望一直更新下去!

确实,支持楼主。

6.0.3 版本 已发布

好消息:插件最新版本已经过审,商店购买即可在商店下载到最新版本

https://store.cocos.com/app/detail/6756

6.1.0 版本 已发布

商店地址:【GG插件】热更新

1赞

6.2.0 版本 已发布

商店地址:【GG插件】热更新

6.0.2插件打包时计算文件md5有bug(不确定后续版本是否修复):

含有 0x80–0xFF 字节的文件会出错。

常见包括:

  • UTF-8 文本中含中文、日文、Emoji 或其他非 ASCII 字符的 .js 、 .json ;
  • 图片、音频、压缩包、二进制配置、字体、WASM 等二进制资源;
  • 即使代码正文是英文,但源码内有中文日志、注释、文案,也会出错。

不会出错的是文件全部字节都在 ASCII 范围 0x00–0x7F 内,例如纯英文/数字/符号的文本。

fs.readFileSync(absolutePath, “binary”) 需要去掉第二个参数.

即使计算错误的,如果没有自己比对的需求,也符合热更新的逻辑流程,因为结果hash值依然是唯一的.只是不是正确的md5值.

感谢反馈

目前的md5值确实不是标准 md5 值

但由于都是同样计算方式,所以也符合热更新对比逻辑,hash值也能确保差异识别

后面版本会更新一下

1赞

6.3.0 版本 已发布

商店地址:【GG插件】热更新

1赞

:+1::+1:.
所以我的策略是,不更新.然后将api调整为不标准的md5计算参数. :joy::smile:…

等过几个版本再测试更新下.

是的,只是计算值不是标准值,但是差异还是能定位到的~