1.8.1开启Zip压缩,每次构建后jsc文件MD5不一样

如题,开启Zip压缩,即使不修改代码,每次构建后每个jsc文件MD5不一样,我们游戏热更新是基于文件MD5差异做的,导致现在只要修改一行代码,所有的jsc文件都得热更一遍,消耗流量过大。

Creator的压缩算法是做了什么随机优化吗?还是有什么特殊原因导致这个问题?除了关闭zip压缩之外有什么解决方案吗?

PS:压缩开启以后,jsc文件小了好几倍,拿jsb_polyfill.jsc比较,开启压缩前是710k,压缩后160k,这波压缩操作还是挺不错的。

2赞

这个我们要再查看看,按理说 zip 时是不会同时保留修改的时间戳的。
不过,md5 功能不是 Creator 有自带吗?

我就是用的Creator默认的zip压缩功能。
构建面板-加密脚本-Zip压缩 这个小对勾:grin:

这个问题1.8.2还存在,我新创建了一个HelloWorld项目,使用Android平台构建,勾选面板的“加密脚本”和“Zip压缩”,不修改项目任何文件,每次生成出来的jsb_polyfill.jsc、project.jsc、settings.jsc的MD5值都不一样。

压缩zip格式有个时间戳会变, 把他固定死就行, 当时creator没有压缩功能, 自己压缩是也遇到这个问题

抱歉,暂时没人力修复这个问题。不过我们已经记录下来了。有时间就会安排优化的。

我做了下强转的脚本 暂时用着还没啥问题 主要将zip文件中的无关信息置零了 http://forum.cocos.com/t/creator-js/65280

1赞

这个问题之前已经在 1.9 或 1.10 中修复了~

挖坟了,我遇到跟你类似的问题,对相同的工程,内容不变情况下进行两次构建,构建出来的project.manifest里边记录着另外一个manifest文件的md5永远不同,这个是其中一个问题。
另外一个问题是,对于希望用zip包做热更减少下载io,依然两次相同构建,每次构建zip包记录在project.manifest里的MD5全都不同,后来找找社区里有人说需要指定压缩包的固定时间戳,让其忽略修改时间,但内容一样的情况,于是我就加入了固定时间压缩,用的是js的jszip工具,格式如下
jszip.file(文件路径, 文件内容, { binary: true,date: 固定时间戳 });
然而出来的结果依然是md5码全变,
针对这两个问题,不知道楼主有没有碰到过,尤其是第一个问题是否是正常现象。