我这边线上产品发现一个热更的bug。热更过程中如果用户kill掉进程或者断网,然后重启游戏,就会偶发出现更新失败。一旦失败了,每次重启都会直接提示更新失败。
case jsb.EventAssetsManager.UPDATE_FAILED: cc.log('文件下载失败:' + event.getMessage()); this.failCount++; if (this.failCount < 5) { this.assetManager.downloadFailedAssets(); } else { cc.log('太多文件下载失败,退出热更新!'); this.failCount = 0; failed = true; } break;
这是我处理文件下载失败的方式。之前一旦提示用户热更失败就只能重启,所以用户就一直卡在热更了。
我们现在的处理方式就是当报更新失败的时候把temp文件夹删了重新下载就能成功。
我在2.1.2版本之前不会出现这种情况。
出现这个问题是在我升级引擎到2.2.1rc1的时候开始出现。这个更新失败不是必现的,但概率很大。怀疑是断点续传或者temp文件夹检查的时候有问题。
因为目前新功能迭代时间比较紧所以没有具体去排查,望引擎组能好好排查一下这个热更因中途中断而导致热更失败的原因。