问题
- 在XCode分析器中分析Unity应用时,Instrument 不显示符号(Symbols)。
- 我已经通过dSYM构建了应用, 但是没有正确显示符号。
- 我已经通过符号运行Instruments, 但是符号突然就消失了。
原因
启动Instruments或者重启一个会话,尽管使用了 dSYM来构建,但是对于用户代码没有显示符号。
解决方案
符号可被用于指明负责分配或者崩溃的函数。在做性能分析时, 您应该使用符号来构建应用(符号存储在dSYM文件中),以便显示函数名称而非晦涩难懂的内存地址。以下内容将指导您如何构建一个Unity项目,并通过Xcode/ Instruments来做性能分析。如果您想分析各个方法运行时所花费的时间,或者您想看看因为某些原因Unity Profiler无法抓取到的内存分配情况,以下内容将会很有帮助。
-
Unity:在Unity中构建一个iOS Development Build(Shift + Command + B)
-
Xcode:如果当前有应用在运行,停止运行应用(Command +)
-
Xcode:使用菜单清理项目(Shift + Command + K)
-
Xcode:进行应用构建(Command+B)
-
Xcode:打开Navigator日志(Command+7)找到项目的 .app.dSYMpath.*
Log:
Find entry for GeneratingProductName.app.dSYM
.Log:
Click the icon on right side of entry for more info.Log:
Memorise the.app.dSYM
path.
Path:
Will be similar to/Users/YourUserName/Library/Developer/Xcode/DerivedData/Unity-iPhone-bqqxaseotmttydgblyqetnfdzqtg/Build/Products/<mode>-iOS/YourProjectName.app.dSYM
- Xcode:打开Profiler(Command+I)
-
例:选择Allocations
-
例:运行一段时间后停止追踪(Command+R)
-
- Profiler分析器:如果需要,Re-Symbolicate Document以获取符号
-
dSYM:在顶部菜单中找到File/ Re-Symbolicate Document...
- dSYM: 在搜索框中输入二进制名称
-
注意:这是Unity项目的名称
-
- dSYM:为您的二进制文件找到.app.dSYM
-
定位:选择二进制,然后按下Locate
-
定位:浏览.app.dSYM,然后按下Open
-
定位:如果遇到有关UUID的错误,则进行一次清除/重构建
-
dSYM:按下Symbolicate.
-
-
-
Profiler分析器:分析器现在应该已经拥有正确的信息和符号了
另外,您也可以使用项目浏览器(Project Explorer),通过点击Derived Data边上的剑头,在Products/<Mode>-iphoneos/中找到dSYM文件。
如果您想在崩溃日志里看到符号,可以在这里找到更多信息。
本文适用于Unity 4.6.0f1及以上,Xcode 6及以上,iOS 6.0及以上版本