官方 热更新你们给的ZIP方式 没有办法实现MD5不变的 ,你们是怎么考虑的?

比如版本245, 比如 build\jsb-link\assets\main\import 里的某个目录,每次重新构建后 就算目录里的文件内容没变化,但你的文件的时间变了 ZIP后的MD5也是不一样的
那么你们给的这个ZIP方式 还有什么实际意义呢 ?每次构建 ZIP的MD5都不一样了 那么就会导致所有的ZIP都要更新一次被 这个没有实用价值的了变成,想知道 你们是怎么设计的,怎么避免这个问题?

你好,2.4.6 上有对这个问题进行了修复,可以测试一下;

能给说说是用了什么方式避免这个问题的吗? 因为ZIP是要求有时间戳的 你重新构建后 时间肯定变了 这个是怎么保证两个ZIP的MD5还是一样的呢

是在压缩之前计算好 md5 的

我没太理解你说的 这个压缩前计算的流程,
比如jsb-link\assets\resources\import\4f 这个目录 我会用第三方工具 来压缩 ,比如常见的nodejs的compressing库吧 这个压缩是nodejs控制的 最后zip包是什么样 也是由nodejs来决定的 目前nodejs会把时间戳计算进来 你认为工具的构建和nodejs打ZIP包这个流程 是个什么关系?

但你的文件的时间变了 ZIP后的MD5也是不一样的

md5和时间没关系 和名字也没关系 只和内容有关

2.4.4 没问题, 反而据说修复了这个问题的2.4.6出现这个问题

@jare, 2.4.6版本, 新建hello world ts 项目. 将项目内某些文件夹设置成 remote bundle. 构建android 或其他native 项目
image
构建完后 不需要改任何东西 重复点击 “构建”, 每次构建 都会有某bundle config.xxxx.json / index.xxxx.jsc 的hash值发生变化. 对比二进制发现 前后文件内容一致.

@jare
最离谱的是 连 internal 这个内置bundle 都前后不一样


这个 内置 bundle 肯定是不可能去改动的.
所以我觉得这绝对是个bug.

抱歉这个 config 和 index 的 md5 问题,2.4.7 就会修复了。

zip md5 是编辑器自己计算的,所以能避免时间戳的问题

是说 是开发者自己控制的吧? 如果是用户自己控制的 那么验证的时候 这里说的 不用验证ZIP形式 是个什么规则? 那么能给解释一下吗

这是因为 zip 内的文件是通过 zip 做缓存校验的,所以不用重复验证 zip 内部的 md5

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。