使用优化

时间:2018-04-11 21:39:48

标签: ios xcode unity3d

我使用Unity for iOS创建游戏。 当Xcode升级到9.3时,有时当我在游戏中时项目会因此错误而崩溃:

  

是通过优化编译的 - 步进可能表现得很奇怪;变量   可能无法使用。

我搜索并找到许多方法来解决这个问题,但我仍然明白了。 我没有使用优化,我取消选中统一设置中的代码条。

任何想法如何解决它?!

更新:

另一个信息

  

ShouldUpdateTransformBefore():

0x100f9c064 <+0>:  ldr    x8, [x0]
0x100f9c068 <+4>:  ldr    x9, [x1]
0x100f9c06c <+8>:  cmp    x8, x9
0x100f9c070 <+12>: b.eq   0x100f9c07c               ; <+24> at RectTransform.cpp:319
0x100f9c074 <+16>: cset   w0, lo
0x100f9c078 <+20>: ret    
0x100f9c07c <+24>: ldr    w9, [x1, #0x8]
0x100f9c080 <+28>: cmn    w9, #0x1                  ; =0x1 
0x100f9c084 <+32>: b.eq   0x100f9c0a4               ; <+64> at RectTransform.cpp:320
0x100f9c088 <+36>: ldr    w10, [x0, #0x8]
0x100f9c08c <+40>: cmp    w9, w10
0x100f9c090 <+44>: b.eq   0x100f9c0ac               ; <+72> at RectTransform.cpp:327
     

- &GT; 0x100f9c094&lt; + 48&gt;:ldr x11,[x8,#0x10]

0x100f9c098 <+52>: ldr    w9, [x11, w9, sxtw #2]
0x100f9c09c <+56>: cmn    w9, #0x1                  ; =0x1 
0x100f9c0a0 <+60>: b.ne   0x100f9c08c               ; <+40> at RectTransform.cpp:322
0x100f9c0a4 <+64>: mov    w0, #0x0
0x100f9c0a8 <+68>: ret    
0x100f9c0ac <+72>: orr    w0, wzr, #0x1
0x100f9c0b0 <+76>: ret

1 个答案:

答案 0 :(得分:0)

虽然似乎为时已晚,但我只是面临类似的问题并在此处分享解决方案。

原因

就我而言,应用程序使用过多的内存会导致测试设备崩溃。您可以使用更好的设备对其进行测试。我的应用程序在iPhone7中崩溃,但在iPhone7 Plus中没有崩溃。您也可以在左侧的“内存”列中对其进行检查。

enter image description here

解决方案

如果应用程序在加载场景时崩溃,这是解决方案或建议。

假设有2个场景,A和B。它们都消耗1GB内存。

当A-> B时,加载B后A将被销毁,这意味着当A + B时​​需要2GB。对于移动设备来说太重了。

因此,我添加了场景C,这是一个中间件,其内存为0.1GB。

现在我通过A-> C-> B进入场景B。

A + C请求1.1GB,然后释放场景A。

之后,C-> B请求1.1GB。

加载场景的最大内存从A到B从2GB减少到1.1GB。它解决了我的应用程序崩溃的问题。希望对您有所帮助。

相关问题