优化 - 步进可能会表现得很奇怪:iOS/Unity
Posted
技术标签:
【中文标题】优化 - 步进可能会表现得很奇怪:iOS/Unity【英文标题】:optimization - stepping may behave oddly : iOS/Unity 【发布时间】:2017-07-13 11:08:27 【问题描述】:我正在尝试将 unity 集成到 ios 应用程序中。我已经按照这个教程http://www.agnosticdev.com/blog-entry/swift/integrating-unity-and-vuforia-ios-swift-project
现在,当我启动我的应用程序时,它会崩溃并在控制台上显示此错误:was compiled with optimization - stepping may behave oddly; variables may not be available.
崩溃:
我试过谷歌搜索并找到这些链接:
-
APPNAME was compiled with optimization - stepping may behave oddly; variables may not be available
'Project Name' was compiled with optimization - stepping may behave oddly; variables may not be available
Xcode target compiled with optimization
Xcode: Cannot set optimization level for debug
什么都没有改变。
我更改了项目和 pod 的优化级别。
我还在 pod 文件中添加了这一行:project 'MyProject', 'Debug - local'=>:debug, 'Debug - staging'=>:debug, 'Debug - PRODUCTION'=>:debug
(在目标 'projectname' 之前)
我也统一取消选中Strip Engine Code。
我能做些什么来克服这个错误? 任何帮助将不胜感激,谢谢。
【问题讨论】:
这很可能是因为某些数字类型变量在使用前没有初始化。启用优化后,它将选择垃圾值,而在其他情况下可能取 0。尝试使用僵尸 - developer.apple.com/library/content/documentation/… 它可能有助于找到确切的代码。 @AmreshKumar 谢谢我会寻找僵尸。 @SharadChauhan 我遇到了同样的问题。您找到解决方案了吗? @duong_dajgja 不,我从来没有找到。 【参考方案1】:您正在调试的代码是 IL2CPP 代码,它可能在预先构建的优化库中(可能在 libiPhone-lib.a 中)。您的构建设置只会影响现在在您的 xcode 项目中编译的代码,因此它们不会影响预构建的库。要消除警告,您需要重建该库,并且需要 Unity 源代码来执行此操作。
更重要的是,这不是导致崩溃的原因。它只是告诉你,要找到崩溃的源头将会变得更加困难。
看起来它正在调用一个名为 LoadMetadataFile 的函数并在访问返回时崩溃。您可能可以在该函数调用上设置一个断点并查看其中的内容以找到下一个调试步骤(bl 指令在突出显示的崩溃行上方 5 行)。
以下是一些可能对您有所帮助的文档: 苹果调用约定文档: https://developer.apple.com/library/content/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html
arm指令参考(打开到崩溃指令):http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802a/LDRSW_imm.html
【讨论】:
【参考方案2】:我有同样的问题,我解决了它添加到Apple LLVM - Custom Compiler FLags
:
其他 C 标志:-DRUNTIME_IL2CPP=1
【讨论】:
以上是关于优化 - 步进可能会表现得很奇怪:iOS/Unity的主要内容,如果未能解决你的问题,请参考以下文章
Vim表现得很奇怪,每当我到达某一行时,它就开始突出显示它,我在大多数程序中都会出错