cocos3.8.6热更新问题(安卓和ios都遇到了)

各位开发者好,大家有没有遇到热更新后一段时间正常的,然后突然就回退到原来版本的问题?

很难理解,热更新的版本挂服务器上的,有的手机也是正常的,但是有的手机不知道为什么,可能经过什么操作,就会回退

检查资源是否有 名字带空格的

应该是生成版本文件的操作在构建项目的操作之前进行导致。这里官方应该强调一下顺序,需要先构建既定版本的项目后,再执行生成版本文件的脚本,这样写入的文件名才是最新版本的。但是由于热更新节点依赖了版本文件,所以还要再重复执行一次构建、生成这样的操作,然后才能上传。

有个疑惑,为啥构建会导致project.manifest文件内容变更?

另外想请教一下,如果需要从更新文件找不同,是不是只能在众多文件中对比查找,没有更快的方式了;或者只能使用sync这样的linux对比命令?

虽然问题原因找到了,但是这种现象很有趣,不知道有没有懂行的朋友解释一下,就是回退这种,一开始更新是正常版本,后面没有任何操作就回退了,包括代码。我寻思也没有重新下载旧的文件,版本号也是最新的,突然程序就使用旧的代码旧的资源了。

project.manifest中生成的资源md5是用的构建后的资源生成的,你只需要构建
后,再生成新的版本比对文件,然后把新生成的比对文件替换到构建后的资源里边就不需要重新构建项目了

怎么找到要替换的构建后的资源在什么位置呢?因为构建后的全是md5值命名的文件,不可能挨个去翻吧?

后缀是.manifest
脚本搜索一下

哦哦,这个给忘了 :laughing:

又重新测试了,还是不行,依然会回退。有没有谁能帮我分析一下,需要怎么测试解决安卓上这种问题,怎么查找呢?

找到最终原因了,是因为使用了sys.localStorage.clear()这个方法清除了某些数据导致热更新回退的,希望能被官方记录一下,并给出详细解释。

https://docs.cocos.com/creator/3.8/manual/zh/advanced-topics/hot-update.html#打包原生版本

感谢支持 :+1:

但是个人感觉官方还是应该强调一下清除缓存后的表象,并提醒使用者~

never mind~