【Cocos】热更Bug回顾
1、热更包排序问题
cocos自作聪明,用无序字典存储,导致更新包会出现旧包覆盖新包的情况。由于已经上架App Store了,再提审有风险,只好写个工具生成更新包名,使包名即符合升序,又符合hash排序,即使hash之后仍旧是正确顺序的命名。
其实还有个方案:每次做新的更新包,把旧的更新包的文件也跟着替换一遍到最新,这样即使覆盖也都是本次要更新的新文件。由于这个会改动到已经更新的包,对测试和运营来说有风险,遂PASS
struct DownloadUnit
{
std::string srcUrl;
std::string storagePath;
std::string customId;
};
typedef std::unordered_map<std::string, DownloadUnit> DownloadUnits;
2、热更完毕卸载上次加载过的文件用于本次不重启即可生效。