Egret社区

共享一份热更思路和工具

2021-6-2 16:18
2453
本文章只提供一个方案和一个工具,程序代码需要自己实现

首先下载附件工具jscmd(工具个人开发,永久免费使用)

工具附带其他功能暂且不介绍,本文只介绍利用工具生成热更包和程序思路。

首先打开程序,选择安装“文件对比打包器”


工具说明



1.在项目资源目录下新建文件夹version

2.在文件夹里新建文本输入%jscmd% fileContrast ..\\ "exe,bat" "res,resource"

3.首次直接双击运行,一般是第一次发布版本的全包,第一次不会自动打包,需要自己手动打包全部资源。工具通过遍历目录全部文件产生MD5列表,并且在version目录下创建log.json(日志文件上传到服务器需要用到)。并创建一个文件夹,由本地时间创建的一个版本号。

4.当第二次资源变动后,再次运行bat,程序会通过log.json文件找到最新版本文件夹里面的MD5文件作为对比,并且自动导出变动的文件和压缩包。



程序代码


每个资源包里面必定会生成4个文件

packVersion.json  里面保存着当前包的版本ID

resVersion.json  本次更新包里有变动或者新加的文件路径

resVersionAll.json  本次所有资源最新的MD5列表,主要给程序下次更新做对比

resVersionRemove.json  相对上个版本这些资源已经不存在了



然后我们程序启动后先加载packVersion.json文件,获取当前游戏资源版本,然后获取服务器上的log.json文件,作为一个数组遍历对比,如果在数组0位表示最新版本,如果在第几位,表示有n个版本包需要更新啦,从当前版本位置数组-1获取下一个版本ID,通过版本ID下载网络对应的压缩包,解压完毕再循环判断版本,直到更新到最新版本就行啦!!!



ps:如果中途更新包已经被更新,log.json里面不建议删除哦,删除了需要代码特殊处理一下,如果还没被更新,可以直接在log.json里删掉指定版本到最新版,达到更新包集合。



ps:第一次使用net制作工具,目前测试win10兼容较好,win7可能需要根据提示安装net程序

pppppps:本来想加入图片,奈何等级太低字数不允许,又不想分上下贴



jscmd.zip

12.13 KB, 下载次数: 4, 下载积分: 银子 -1

分享到 :
0 人收藏

3 个回复

倒序浏览
abc  略有小成 | 2021-6-7 17:44:26
感谢分享。
rainlaw  登堂入室 | 2021-6-10 20:29:22
英雄所见略同
lin389046794  初学乍练 | 2021-6-11 14:39:23
mask
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部