1.3.1 在iOS装置上的种种问题

version: cocos creator v 1.3.1 rc
iPad Mini 2(ios 9.3.1)(64-bit)
iPod Touch 5g(ios 9.3.5)(32-bit)

Steps:

  1. cocos creator create new project
  2. create a Scene (with Canvas Node only)
  3. build ios platform with default template
  4. use xcode and run on device

运行时间和内存状况
app开启时内存24mb
0-1分:内存持续成长至25.8mb
约1分钟:内存释放回到25.2mb (印出failed to remove proxy for native object信息)
1-2分:内存稳定在25.2mb
2-8分:内存持续成长至(比0-1分钟还快)
约8分时:内存释放回到33.4mb
8〜20分:内存稳定在33.4mb

运行3次情况都一样(内存数字会有些浮动)

在内存成长阶段…我们的项目都会发生崩溃的问题(JS_CallFunctionName,JS_CallFunctionValue)
而且这现象只有在iPad Mini上运行的时候会(iPod Touch,模拟器,web都不会)
v 1.2.1版本的时候也没有这些问题(但是v 1.2.1内存无法释放)

几个问题是1.3.1版本JSB的部分是不是有些bug要厘清(32-bit, 64-bit)
记得@panda有提到v 1.3.1版本内存模块有重构…修了内存释放却多了崩溃问题

我们的项目目标是ios …有这些问题存在…品质根本没法控制

ps。我们开发阶段之前都在模拟器和web上运行…运作都顺畅…最近开始准备实机测试才发现这些问题

同遇到这个情况 目前除了IP7 其它都崩了(实机测试)

感觉实机上面的问题都没官方团队重视

目前我们测试在内部机制上没有什么问题,1.3 内存的模型的确有比较大的修改,1.3.1 中修复了一些由事件引起的崩溃问题。

你描述的崩溃情况跟游戏逻辑有很大的关系,能否定位一下哪些逻辑上出现了崩溃的现象?另外,你说只有 iPad mini 上才会出现问题,你这台设备的内存是多大?可以尝试在其他平台主动调用 cc.sys.garbageCollect 来看看会不会崩溃。

这种崩溃的问题多半是由于游戏逻辑在注册了一些 C++ 层面的回调之后,依赖的引用在 JS 层被垃圾回收了,需要具体情况具体分析,最好是能够有可重现的范例来帮助我们重现你的问题,我们就会尽力解决的

游戏逻辑上当然会有些问题(还在开发中)
但是同样的程序在v1.2.1的版本不会崩溃!!

那崩溃跟iPad Mini的内存空间没有关系(ApplicationDidReceiveMemoryWarning没触发)
xcode上面的使用量也都在安全范围(app使用200mb左右…安全范围在500mb)
崩溃应该都是崩溃在你所说的注册回调被回收(JS_CallFunctionName, JS_CallFunctionValue)
如果真的是内存不足崩溃是会直接中断xcode连线的

我明白你的意思,我是希望你能够详细描述问题,无法重现的话我们也爱莫能助。1.2.1 到 1.3 改动比较大,有些以前不会触发问题的逻辑在新版本中触发了问题,不管是游戏逻辑的问题还是引擎的问题,我们都需要重现才可以定位和解决。

在装置上运行发生崩溃是没办法很明确的指出js部分是崩在哪一行的
这部分得花很多时间成本下去找
(旧版运行没问题…我们当然就会用一样的写法堆架构)

这一次升版发生这样问题下一次升版也有可能再次发生
我们可没办法负荷这样的成本(这是直接影响对这引擎的信心程度的)

这边回报给你我们这边发现的新情况
我们另一位开发伙伴和我说那边测试没有我这边的崩溃问题
差异点在他的mac xcode版本是停留在很旧的 6.3.5 版本 (macOS 10.10 )
而我这边使用的是新的 8.1 版本 (macOS 10.12.1)

在6.3.5版本运行甚至连 failed to remove proxy for native object 信息都不会印

那能不能提供一个可以重现问题的案例呢?