写了一个超长的热更新文档,欢迎反馈

每次重试都是用户控制的,如果次数太多,可以放弃重试

那更新会失败。缓存中的文件是有可能被清理的。

1.5 正式版 在 main.js 添加的
if (cc.sys.isNative) {
var hotUpdateSearchPaths = cc.sys.localStorage.getItem(‘HotUpdateSearchPaths’);
if (hotUpdateSearchPaths) {
jsb.fileUtils.setSearchPaths(JSON.parse(hotUpdateSearchPaths));
}
}
发布 web 版时会报错,
Uncaught ReferenceError: cc is not defined
at main.js:5
at main.js:175
我看了下,你的 main.js 和 1.5的main.js 有很大的不同

感谢你的回答

我有个疑问
如果我想将所有除开main.js 之外的所有资源与代码都加入热更。正确的做法是怎样的。

项目里有多本书需要动态下载(每本书有多个场景,场景、图片、音频,spine均按照目录方式组织),现在用的多个manifest方式,静态资源如图片、音频、spine等压缩成了zip包。可是res/import下的目录怎么和场景对应起来的呢?怎么可以识别出哪些目录是某本书的资源呢?

1赞

同问同问

期待asset bundle , @panda 大大加油

@panda 大大,接下来的版本,热更新会有什么更新吗?

使用 1.5.1.beta2 版本, 热更新时, 发现下载数据的百分比不正确. 请教一下,

case jsb.EventAssetsManager.UPDATE_PROGRESSION:
var percent = event.getPercent() || 0;

这个 percent 是指当前正在下载文件的进度吗? 如果我想获取总下载进度, 应该如何处理呢?

@panda 请指教!

应该是总进度,最新版是0到1。以前的版本是0到100。你试试

在ccc 1.4版本中,生成热更包。在手机上热更新后,发现只有场景和资源热更新而代码没有热更新到。想问有哪些原因会出这种情况呢?

您好,现在热更新,能过苹果的审核吗?

应该过不了,我们原生应用都被下架了

请问你们被下架的原因是什么呢?理论上热更新没有使用任何违禁的接口。这次苹果大规模下架 app 有很多原因,不一定是由于热更新。也可能是跟第三方库有关,也有可能是商品内容问题

想知道怎么去启动其他项目的场景,请问如何在大厅里面启动main.js啊

请教一下楼主,node version_generator.js -v 1.0.0 -u http://your-server-address/tutorial-hot-update/remote-assets/ -s native/package/ -d assets/
用这个生成manifest,那native/package/这个目录是在哪里,这是个什么目录啊。有点不明白。

这个是cocos工程发布、编译后的原生工程(安卓/iOS)中的对应的资源目录

##请问这样的代码会不会有问题
##1.更新完成时:
cc.sys.localStorage.setItem(‘HotUpdateSearchPaths’, JSON.stringify(searchPaths));
这里保存了一个沙盒目录

##2.启动时
main.js :
if (cc.sys.isNative) {
var hotUpdateSearchPaths = cc.sys.localStorage.getItem(‘HotUpdateSearchPaths’);
if (hotUpdateSearchPaths) {
jsb.fileUtils.setSearchPaths(JSON.parse(hotUpdateSearchPaths));
}
}
获取保存的沙盒目录设置为检索目录。

##问题
ios8后沙盒目录每次“更新”(xcode连线重新运行app)后都会变化吗,这样的话,本地数据库的路径和当前的沙盒目录不一致,会不会找不到已经更新好的资源?还是fileUtils.setSearchPaths有对沙盒目录做过处理?

iOS app 每次从 store 更新后沙盒位置都会改变,理论上 localStorage 内容会失效,我不是非常确定 iOS 有没有做类似的沙盒拷贝。。。