热更新方案里 setVerifyCallback 回调得到的 asset.size 是不是有精度问题

10M以上的文件用size作为判断条件好像就会对不上了,打印出来的asset.size值和project.manifest中存的值会不同,getFileSize获取到的是精确的值。
粗略的看了一下asset.size用的是float,超过七位大概是10M是不是就会精度丢失了啊,不过不太懂c++不知道是不是这个原因造成的。
这么多年用下来的方案,看了论坛里面没人反应过这个问题,最佳实践是都只用md5做判断吗,还是说不应该有10M以上的文件。

1赞

截止到今日(2025年10月27日),这个问题还在,我本打算使用size代替md5做文件效验,毕竟获取md5要慢很多。我的文件大小为17.3M,符合楼主提到的大于10M说法,我当前使用的最新的官方版本:3.8.7,官方一直都没有修复这个问题,通过setVerifyCallback回调中获取到的size比我打到project.manifest中的size多1,我理解的是,文件大小使用的是字节单位,不应该直接用整数类型就可以吗?另外一个疑惑点,回调中返回的size数值,应该直接从project.manifest中获取就可以了,为什么会出现数值不一致的情况呢?