xcode Time Profiler未显示符号名称

jdo*_*dog 15 profile xcode ios

更新到xCode 4.5,当时间分析我的应用程序符号名称不再显示类或对象,但显示内存地址,请参阅下文.

0x2fd42e13
0x38014448
Run Code Online (Sandbox Code Playgroud)

我曾经看过以下内容

main
NSManagedObjectContext
Run Code Online (Sandbox Code Playgroud)

当我能看到类名时,我可以追踪扩展细节中的问题.现在,扩展细节显示与0x2fd42e13相同的内容.

Nat*_* F. 33

为了解决我的问题,我不得不告诉仪器我的二进制文件在哪里,因为它因某种原因而丢失了它的踪迹.

1. 像往常一样运行仪器以获取屏蔽数据.

在此输入图像描述

2. 在Project Navigator中,展开Products文件夹并单击您的应用程序(提供程序(.appex)或应用程序(.app).如果您的文件检查器不可见,请右键单击该应用程序并单击"显示文件检查器"

在此输入图像描述

3. 在屏幕的右侧,您现在应该看到二进制文件的文件检查器.相反单击"完整路径"属性,然后单击"复制".

在此输入图像描述

4. 回到仪器并转到File->Symbols

在此输入图像描述

5. 在左侧下载您的应用程序或提供程序,然后单击旁边带有点的项目(它应与您的应用程序具有相同的名称)

在此输入图像描述

6. 您会注意到二进制路径是红色的.这意味着Instruments已经丢失了对二进制文件的跟踪.单击右下方的小文件夹图标以显示"选择文件"对话框.按此Command+Shift+G键输入目录路径,然后粘贴我们之前从xcode复制的路径.

在此输入图像描述

7. 您现在应该选择二进制文件,单击Open以打开它.单击对话框上的完成以关闭窗口.现在,仪器应该在分析代码时显示正确的详细信息和符号名称.

在此输入图像描述

  1. 如果再次出现,并且您的二进制文件位于类似的路径上/Users/<User>/Library/Developer/Xcode/DerivedData/...,则需要将其添加到Instruments中的默认搜索路径./Library未被Spotlight索引,因此不会被Instruments搜索.转到"仪器">"首选项">"符号",然后添加/Users/<User>/Library/Developer/Xcode/DerivedData/.

  • 添加了一个额外的步骤,使此修复程序更加永久。没有它,我每次更新应用程序时Instruments都找不到我的二进制文件。 (2认同)

jdo*_*dog 12

自己解决了:

编辑您的方案,其中显示"WhateverProjectNameIs> iPad 6.0模拟器"

然后单击左侧的" Profile "在Info选项卡上,将Build Configuration更改为Debug(可能设置为Release)应该这样做.请注意,无论出于何种原因,构建目标都没有设置为与配置文件目标相同的构建配置,这使我绊倒了一两次.