原因是因为 bundle 的 md5 是存在 settings.js 里面的,当你后面升级bundle之后, apk 内 settings.js 里面记录的 asset bundle 的 md5 还是老的 md5,所以再次加载的时候,使用了缓存,这种情况有两种方法解决:
-
你在更新远程包的时候,需要热更新一下用户包内的 settings.js。
-
你在服务器上增加一个manifest文件,用来记录所有远程包当前的 md5, 然后修改你的游戏启动逻辑,启动时先去加载这个manifest,拿到当前所有的 md5 信息,然后调用 loadBundle 的时候,手动将最新的 md5 传入即可,例如
loadBundle('http://xxxx', { version: xxx }, onComplete: () => {})