creator热更新无效

年后开新项目,热更新是必须的,所以测试一下官方给的例子:
https://github.com/cocos-creator/tutorial-hot-update
但是发现,更新完成了,但是运行的项目还是旧版本的样子,没有变化。。
我使用的creator是1.3.3,测试使用的iOS模拟器。

不但热更不成功,我新建一个工程,在iOS模拟器的用户可写数据目录 Documents下创建跟发布项目一样的路径,使用图片模拟更新图片资源,还是失败了,没有替换新的图片资源。。。

说说具体的步骤,有没有在启动时设置下载目录为优先的搜索路径?

有设置资源搜索路径,就说测试搜索路径,我这样做的:
1、先建一个简单项目,测试Scene拖入一个背景图A和一个图片精灵B1;
2、在Scene脚本onLoad中改变B1的图片为B2:
cc.loader.loadRes(“cocos”, cc.SpriteFrame, function (err, spriteFrame) {
self.icon.getComponent(cc.Sprite).spriteFrame = spriteFrame;
});
3、使用binary发布这个项目P1到iOS项目,使用XCode运行模拟器;
4、在creator项目中**替换A和B2的图片**资源(忘了说图片都是放在assets/resources 下面的),重新发布项目使用default为P2,这样P1与P2在两个不同的目录下;
P1: /Users/xxxx/Documents/demo/ResTest/restest/build/jsb-binary
P2: /Users/xxxx/Documents/demo/ResTest/restest/build/jsb-default
5、从P2项目下 /Users/xxxx/Documents/demo/ResTest/restest/build/jsb-default/res 复制整个res文件夹到 P1项目的模拟器用户数据目录下:
/Users/xxxx/Library/Developer/CoreSimulator/Devices/57A1C502-48B9-4026-9B67-6E6A16027D8B/data/Containers/Data/Application/274B61EC-B07D-4677-BB51-8AE784779D47/Documents/local
6、修改P1的main.js文件加入新的资源搜索路径:
(function () {

'use strict';

function boot () {
    if (cc.sys.isNative) {
        var path = jsb.fileUtils.getWritablePath() + "local";
        console.log("Path: ", path);
        jsb.fileUtils.addSearchPath(path);
        console.log("");
        console.log(jsb.fileUtils.getSearchPaths());
        console.log("");
    }

7、重新运行P1,没有使用local目录下的新资源。
(完)

这个嘛,可能跟每次运行时 writablePath 不同有关系,iOS 真机和模拟器都会在重新安装时(在 Xcode 中运行相当于重新安装)重新分配 writable path,你这样手动拷贝的确有可能会失败。你打印出来的 Path: <writablePath/local> 的地址和你拷贝的位置一样吗?

还有个问题,addSearchPath 是附加,这样的话,系统会先找到包内的 res 文件夹,永远也找不到你自己复制的 local/res 文件夹。

searchPath 的优先级是按照添加顺序来的,所以我们的范例代码中,是先获取 searchPaths 数组,然后在数组头部附加下载路径,最后用 setSearchPaths 进行重置

按照你说的修改,成功了,的确是路径优先级的问题。
多谢指导:grin: