我使用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
答案 0 :(得分:0)
虽然似乎为时已晚,但我只是面临类似的问题并在此处分享解决方案。
原因
就我而言,应用程序使用过多的内存会导致测试设备崩溃。您可以使用更好的设备对其进行测试。我的应用程序在iPhone7中崩溃,但在iPhone7 Plus中没有崩溃。您也可以在左侧的“内存”列中对其进行检查。
解决方案
如果应用程序在加载场景时崩溃,这是解决方案或建议。
假设有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。它解决了我的应用程序崩溃的问题。希望对您有所帮助。