写一个热更新的简单流程,希望对大家有帮助,我也是小白

  1. 首先当然是认真的阅读官网给出的文档的,但是真的没咋看明白,后来下了demo才对少明白点
    2.大概浏览一下文档给出的例子,好多地方都是一下的,可以直接拷贝到自己的代码中
  2. 重点就是怎样在自己的项目中跑起来
    (1)首先第一个问题出来了
    不论我绑定什么东西就是绑定不上,就更别说绑定生成的mainfest文件了,最后查了一下文档,直接修改为**manifestUrl:cc.RawAsset,**就可以和生成的manifest文件进行绑定了(最可怕的是刚开始看见这个属性时都不知道这个属性是干啥的,没有找见明确的文档说他是和生成的manifest进行绑定,而且始终绑定不上,结果迷茫好长时间)
    (2),生成manifest文件 ,这个挺好的,文档给出了一个脚本,然后通过执行指定的命令生成文件
    node version_generator.js -v 1.0.1 -u http://127.0.0.1/yzqp/remote_assets/update/ -s build/jsb-link/ assets/
    1.0.1 是版本号 http://127.0.0.1/yzqp/remote_assets/update/ 是你服务器热更新资源的存放路径
    build/jsb-link/ assets/ 是构建原生平台后的本地目录(刚开始实在不知道version_generator.js应该放在哪个目录下,看到这个才知道是放在你项目的根目录下)
    (3)this._am.setEventCallback(this.checkCb.bind(this)); 文档中给出的例子中有这段代码,但是我这就是有问题,提示报错,(应该不是我的版本太老了吧,我用的是1.9.3) 然后我还看了一下c++代码,确实找不见。最后翻了好多老的文档和资料找见了希望,用一下两行代码替换上边的
    this._updateListener = new jsb.EventListenerAssetsManager(this._am, this.checkCb.bind(this));
    cc.eventManager.addListener(this._updateListener, 1);
    (4) 希望引擎组能写点jsb的文档之类的,看见(jsb.)就迷茫,出错了也不好定位
    (5 ) 最后就是测试了 稍微改动一下布局或代码,重新构建,然后再次执行命令生成manifest文件,然后将manifest文件和build\jsb-link目录下的res,src文件夹拷到服务器热更新的指定目录下,这个目录应该和生成manifest时执行的命令中的服务器地址保持一致
    以上就是我在实现热更新时的问题和自己的一点总结,希望对大家有所帮助,其实我也是小白,又说的不对的地方希望大家指出来,共同进步
2赞

你这个排版,看出内伤了:grin:

写的时候没注意,发了以后才发现格式有问题,正好下班了赶着回家就没改,不要在意这些细节

setEventCallback() 在v2.0中有效
nativeUrl 在v1.10中有效
其实大部分是版本的问题:joy:

原来如此,谢谢了

兄弟,谢了解决了一块心病,我一直以为是我哪里操作错了;
因为之前用过老版本的热更新没问题,然后最近又去git上下载最新的demo,然后就跟你一下卡在这里了;
感觉git上最新的项目应该是支持2.0的,而我们大家用的普遍是1.9左右的,所以我们在1.9版本上跑最新的热更新代码自认就会出问题;
简易团队能做好引擎老版本的相关备份;

客气了,