creator3.x原生平台热更新

  • Creator 版本:3.7.4

  • 目标平台:Android

  • 重现方式:

  • 首个报错:热更新需要配置成bundle远程包,远程包不会打到包内,如果我想要将其中的一个远程bundle包打到包内并且可以进行热更新,可以满足第一次进包不需要下载太多东西,有什么好的处理办法吗?

热更新不需要配成远程包,配成普通包就可以了。远程包那边是专门远程即用即下载的。
官方有热更的范例,你可以找一下,生成manifest比对md5来下载的。

https://github.com/cocos-creator/cocos-tutorial-hot-update

这个官方例子我有看过 之前认为只有配置远程的资源才可以放到服务器上 也就是说我可以把bundle不配置远程,然后把bundle资源同时打进包内和发到服务器上一份,配置成远程的bundle会被放入到remote里,如果没有配置远程的放到服务器上也同时放到remote中?然后通过assetManager.loadBundle加载对比版本号相同的话就不会下载使用包内资源不同就会下载到可写目录然后更改搜索目录覆盖包内资源

还是有问题 没有配置成远程bundle的资源都在系统中 加载的时候是不是没办法直接拿远程资源啊 那怎么进行热更新呢?

这个热更的你没看明白,远程的cdn那边,也是要放一个assets目录(并不是远程包的remote目录),同样放置版本资源,包内也有一份资源。
游戏启动的时候,根据manifest内部md5的区别,进入游戏前去下载远程的assets目录,放到本地来替换包内的assets。
注意这个热更是发生在游戏启动的时候整体下载并替换,并不是运行时去拿远程资源。就是和手游app的一样,启动的时候会出个条,正在热更下载中:n%,跑完了才进入启动界面。启动了以后你loadBundle自然就是读本地最新的资源了。

原生平台的热更新 你还要单独的bundle做什么? 动态加载的东西 都放到resources不就行了 多简单,剩下的事交给引擎去做了

大项目还是要分bundle的,只不过这里的assets bundle 和热更本身就关系不大了。启动时候的热更流程不管是resource还是bundle,统一走md5对比并且下载。