我的编辑器版本是1.8.2,使用的插件是是扩展商店内的“热更新manifest生成工具”,要求是要更新地址动态获取,也就是每次更新的地址都是不一样的,按照下面的代码只能第一次更新成功,按注释的代码走也是失败的。。。。求大大指教,到底哪不对。搞了好几天也没弄明白


没有大大碰到过吗。。。。。求大大指教啊,实在搞不懂怎么回事。。
1.else情况不需要吧content写到storageFilePath里去,你把resources下的project获取到内容直接改完地址 JSON.stringify一下再loadLocalManfest一下就行了
2.if情况下你这代码本地有缓存的情况下就不能动态更换url了 ,你需要获取storageFilePath里的project内容 改里面的url再写到storageFilePath里去
而且 你有处理有storageFilePath时的loadLocalManfest吗? 如果没有也会报错的
第一次更新已经没问题了,现在是第二次更新有问题,我就是按你说的读取storageFilePath里的project内容 改里面的url再写到storageFilePath里去,再loadLocalManifest。后台上传最新包和修改更新地址后,没有检测到有更新资源。
要改main.js,应该是这里没改,先构建,在改main.js,每次构建这个js文件都会还原。
你这个问题,充钱就可以解决
情况还是有差异的,我的缓存并没有删除,好像每次进去读的都是缓存内的manifest,无论我们怎么初始化am都不行,这就造成了我发获取最新的更新路径。
不过你的情况我也碰到过,就是每次退出app再进就会重新开始更新。起始就相当于每次进入游戏都是初始版本一样。
告诉我去哪冲,我让我们老板付钱
扩展商店里的那个插件我用过,感觉没用的东西弄了一大堆,替换文件的功能确没做。我自己写了一个插件。
你的意思是第一次更新的时候是直接读包内的res/raw-assets/resources/project.manifest文件然后修改url,之后执行更新
第二次的时候读本地的_storagePath + "res/raw-assets/resources/project.manifest"文件,然后修改url,之后再执行更新?
那儿实用的也就是生成manifest文件了,下面的其实都是些鸡肋
是这么个意思吧,反正每次生成完project.manifest以后,要替换掉res/raw-assets/文件夹下对应的文件。下次才能正常更新。
发现BUG,请引擎开发人员看下对不对,我每次初始化am的时候都使用
this._am = new jsb.AssetsManager(’’, this._storagePath, versionCompareHandle);
this.packageManifest = new jsb.Manifest(content, this._storagePath);
this._am.loadLocalManifest(this.packageManifest, this._storagePath);
因为每次有缓存之后动态修改url就无效了,所以去查看源码。下面是源码
因为缓存路径是一致的,那么我将最新的Manifest传进去,但是源码先执行_cacheManifestPath,那最新的Manifest又有什么意义呢,缓存路径始终在,读的也是缓存路径的
@panda 大大看下
我特意加了个功能,替换构建目录和目标目录的project.manifest文件。
缓存有project的情况下 你在哪里new jsb.Manifest的 吧你的完整代码发上来吧






