1.0.0
-
在原始项目中创建一个用于热更的脚本HotUpdate.ts(官方Demo里有现成的可以参考或者直接用);
-
构建原始项目,使用 version_generator.js 配合如下命令生成 version.manifest 与 project.manifest(版本号灵活调整),放到项目工程目录 Asset 文件夹下。
node version_generator.js -v 1.0.0 -u http://192.168.31.169:8000/tutorial-hot-update/remote-assets/ -s /Users/ivy/CocosProject/HelmetDeep/build/ios-009/assets -d assets/
-
将 HotUpdate.ts 挂在项目的入口页面,如下:
image.png
- 项目->构建发布->构建;生成原生工程后,修改main.js,在头部加入路径逻辑:
(function () {
if (typeof window.jsb === 'object') {
var hotUpdateSearchPaths = localStorage.getItem('HotUpdateSearchPaths');
if (hotUpdateSearchPaths) {
var paths = JSON.parse(hotUpdateSearchPaths);
jsb.fileUtils.setSearchPaths(paths);
var fileList = [];
var storagePath = paths[0] || '';
var tempPath = storagePath + '_temp/';
var baseOffset = tempPath.length;
if (jsb.fileUtils.isDirectoryExist(tempPath) && !jsb.fileUtils.isFileExist(tempPath + 'project.manifest.temp')) {
jsb.fileUtils.listFilesRecursively(tempPath, fileList);
fileList.forEach(srcPath => {
var relativePath = srcPath.substr(baseOffset);
var dstPath = storagePath + relativePath;
if (srcPath[srcPath.length] == '/') {
cc.fileUtils.createDirectory(dstPath)
}
else {
if (cc.fileUtils.isFileExist(dstPath)) {
cc.fileUtils.removeFile(dstPath)
}
cc.fileUtils.renameFile(srcPath, dstPath);
}
})
cc.fileUtils.removeDirectory(tempPath);
}
}
}
})();
也可以通过插件自动完成添加的操作,步骤如下:
(1)下载官方Demo,将 extension 文件夹放到自己项目的根目录下,如图所示

(2)重启cocos 编辑器,打开扩展->扩展编辑器->项目,即可看到刚才添加的插件,插件启动即代表往 main.js 添加代码的逻辑会在以后每次构建后生效

1.0.1
- 修改项目
- 项目->构建发布->构建,生成原生工程后,执行步骤2(灵活修改版本号与原生工程路径)生成 version.manifest 与 project.manifest
-
带开新版本原生工程,将 assets 与 src 文件夹, 连同步骤6生成的两个 manifest 文件一起放入远程服务器的热更路径下
原生工程目录
远程服务器热更路径
验证
- 启动1.0.0版本,验证热更是否生效
网友评论