关于热更新的 md5 值校验, 相同资源生成的值不同(附资源)

关于热更新的 md5 值校验

生成 manifest 使用的脚本

version_generator.js

在程序里面生成 md5 使用的脚本, 参考这个帖子

md5

就这个资源生成的 md5 值不同
sample.zip (300 字节)

version_generator.js 生成的 md5 值是: cb8905d258c5d63118f37c48ec39dd22
md5.js 生成的 md5 值是: cea68f0d7cba38440224f6f74531e2d8

补充:

运行平台: win10
引擎版本: 2.0.8
调用接口: 获得本地资源是调用 jsb.fileUtils.getDataFromFile 接口.

找到问题了, 是 version_generator.js 这个脚本的问题, 在使用 fs.readFileSync 这个接口的时候, 不要传第二个 option 参数, 这样就能保证生成的 md5 值相同了, 即使使用 windows 自带的 md5 生成工具也是相同的.

来挖坟了,我遇到和楼主一样的问题,


但是不是所有的都不同,只有某一个manifest文件不同,其他资源都相同,
过程是这样
1.对于项目资源进行两次构建,两次构建的都是相同的内容,没有修改,构建出来的文件中有一个manifest永远不同
2.另外一个问题是我增加了对构建的zip文件夹压缩,也就是compressed参数,依然是对两个相同的内容,发现两次构建出来的所有zip包md5都不同,后来有找到说是因为zip压缩需要指定一个修改时间戳,我用的是nodejs的jszip工具,指定了时间戳,格式是
jszip.file(文件路径, 文件内容, { binary: true,date: unix1970起始的时间戳});
但是效果依然不行
针对这两个问题楼主有没有遇到过或者解决方案?