关注

如何在使用Instruments 做性能分析时获取符号(Symbols)?

问题

  • 在XCode分析器中分析Unity应用时,Instrument 不显示符号(Symbols)。
  • 我已经通过dSYM构建了应用, 但是没有正确显示符号。
  • 我已经通过符号运行Instruments, 但是符号突然就消失了。

原因

启动Instruments或者重启一个会话,尽管使用了 dSYM来构建,但是对于用户代码没有显示符号。

解决方案

符号可被用于指明负责分配或者崩溃的函数。在做性能分析时, 您应该使用符号来构建应用(符号存储在dSYM文件中),以便显示函数名称而非晦涩难懂的内存地址。以下内容将指导您如何构建一个Unity项目,并通过Xcode/ Instruments来做性能分析。如果您想分析各个方法运行时所花费的时间,或者您想看看因为某些原因Unity Profiler无法抓取到的内存分配情况,以下内容将会很有帮助。

  1. Unity:在Unity中构建一个iOS Development Build(Shift + Command + B)

  2. Xcode:如果当前有应用在运行,停止运行应用(Command +)

  3. Xcode:使用菜单清理项目(Shift + Command + K)

  4. Xcode:进行应用构建(Command+B)

  5. Xcode:打开Navigator日志(Command+7)找到项目的 .app.dSYMpath.*


    1. Log: Find entry for Generating ProductName.app.dSYM.
    2. Log: Click the icon on right side of entry for more info.
    3. Log: Memorise the .app.dSYMpath.
      1. Path: Will be similar to /Users/YourUserName/Library/Developer/Xcode/DerivedData/Unity-iPhone-bqqxaseotmttydgblyqetnfdzqtg/Build/Products/<mode>-iOS/YourProjectName.app.dSYM
  6. Xcode:打开Profiler(Command+I)
    1. 例:选择Allocations

    2. 例:运行一段时间后停止追踪(Command+R)

  7. Profiler分析器:如果需要,Re-Symbolicate Document以获取符号
    1. dSYM:在顶部菜单中找到File/ Re-Symbolicate Document...

    2. dSYM: 在搜索框中输入二进制名称
      1. 注意:这是Unity项目的名称

    3. dSYM:为您的二进制文件找到.app.dSYM
      1. 定位:选择二进制,然后按下Locate

      2. 定位:浏览.app.dSYM,然后按下Open

      3. 定位:如果遇到有关UUID的错误,则进行一次清除/重构建

      4. dSYM:按下Symbolicate.

  8. Profiler分析器:分析器现在应该已经拥有正确的信息和符号了

*

另外,您也可以使用项目浏览器(Project Explorer),通过点击Derived Data边上的剑头,在Products/<Mode>-iphoneos/中找到dSYM文件。

 
 

如果您想在崩溃日志里看到符号,可以在这里找到更多信息

 
更多信息
  • 了解更多关于Instruments的信息请查阅这里
  • 了解更多关于dSYM的信息请查阅这里
  • 了解更多关于iOS崩溃日志中的符号请查阅这里
  • 了解更多关于Profiling的信息请查阅这里

本文适用于Unity 4.6.0f1及以上,Xcode 6及以上,iOS 6.0及以上版本

这篇文章有帮助吗?
0 人中有 0 人觉得有帮助
还有其它问题?提交请求

0 评论

登录写评论。