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

Posted

技术标签:

【中文标题】“项目名称”经过优化编译【英文标题】:"Project Name" was compiled with optimization 【发布时间】:2018-04-11 21:39:47 【问题描述】:

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

【问题讨论】:

我不了解统一,但如果您通过 Xcode 安装/运行但运行方案的配置设置为发布而不是调试(运行方案的配置默认是debug,但可以改为release)。你确定它真的崩溃了。 @Gruntcakes 你的意思是当我将游戏发布到应用商店时我不会看到这个错误? 没有。该消息实际上与应用程序无关,它来自 Xcode,当您尝试交互式调试应用程序时。在此处查看第二个答案:***.com/questions/32772573/… 请注意,这不是错误,只是一条日志消息。如果您的应用崩溃是由于不相关的原因(当您在 App Store 中发布游戏时可能仍然会发生) @dan 我在 android 中没有这个问题!或者在我玩的时候在电脑上。它恰好在日志中显示此错误时发生。 【参考方案1】:

虽然似乎为时已晚,但我只是遇到了类似的问题并在这里分享解决方案。

原因

在我的例子中,使用过多内存的应用程序会导致测试设备崩溃。您可以使用更好的设备对其进行测试。我的应用程序在 iPhone7 中崩溃,但在 iPhone7 Plus 中没有。也可以在左侧的Memory一栏中查看。

解决方案

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

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

A -> B 时,A 会在 B 加载完毕后销毁,也就是说 A + B 时需要 2GB。对于移动来说太重了。

所以我添加场景 C,中间件占用 0.1GB 内存。

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

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

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

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

【讨论】:

以上是关于“项目名称”经过优化编译的主要内容,如果未能解决你的问题,请参考以下文章

Swift 项目编译优化

从结对编程初项目窥团队合作编程

Webpack编译速度优化实战

iOS:MapboxNavigationNative 是经过优化编译的 - 步进可能会表现得很奇怪;

iOS之性能优化·提高App的编译速度

Android 更新项目名称