creator热更新,动态改url
creator热更新,动态改url
一、别人的方法:使用引擎提供的loadRemoteManifest方法动态修改
1.自己用xmlhttprequest下载version.manifest,存放到本地
2.自己比对版本号,决定是否下载project.manifest
3.下载project.manifest并修改其中的url,存放到本地
4.使用loadRemoteManifest读取内存中的manifest,
5.开始checkUpdate()
二、我自己的方法
1)http请求version.manifest文件,判断版本号。
2)改AssetsManagerEx.cpp文件,路径在
CocosDashboard\resources\.editors\Creator\3.4.2\resources\resources\3d\engine-native\extensions\assets-manager
里面的
// std::string packageUrl = _remoteManifest->getPackageUrl(); 改为下面的一句
std::string packageUrl = _localManifest->getPackageUrl();
3)改完url,要写入文件
manifestObject.packageUrl = url;
manifestObject.remoteManifestUrl = url + 'project.manifest';
manifestObject.remoteVersionUrl = url + 'version.manifest';
console.log('===JSON.stringify(manifestObject)', JSON.stringify(manifestObject));
jsb.fileUtils.writeStringToFile(JSON.stringify(manifestObject), this._storagePath + "/project.manifest");
4)打包测试,成功!!!
花了我,好几天时间。老是动态改不成功。
三、打包注意的地方。cocos creator安卓打包踩坑。
热更新说明:
1)项目放在跟目录
2)反复重复更新,说明需要在打包一遍。因为项目里面的2个文件是旧的版本。
3)还是热更新循环反复,注意打包别勾选md5。
打包流程:
1)改版本号,运行第1次bat脚本
2)cocos打包,注意打安卓包不能勾选MD5。不然找不到main.js
3)运行第2次bat脚本
4)发布google play,目标sdk版本要大于30。安卓包体小于150M,超过的要用bundle配置。