“项目名称”经过优化编译

问题描述 投票:0回答:1

[我使用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

-> 0x100f9c094 :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
ios xcode unity3d
1个回答
0
投票

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

原因

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

enter image description here

解决方案>>

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

假设有两个场景,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。它解决了我的应用程序崩溃的问题。希望对您有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.