在XCode Profiler中注册应用程序以进行符号化

ben*_*ree 20 xcode objective-c ios

我正在尝试在我的设备上运行的应用程序上运行XCode的时间分析器,但符号名称显示为0x2fe26643代替[MyClass myMethod].我意识到我需要重新设计应用程序,但我不知道如何.

像这样的一些答案,说按"重新符号",在列表中找到你的二进制文件,然后按"定位"手动查找dSYM.我的应用程序不在名为的列表中dSYM Locations:

在此输入图像描述

如何才能将我的结果象征化?

更新:我发布了一个YouTube剪辑,说明我尝试重新符号化时的样子:http://www.youtube.com/watch?v = CcLGRNkmako

Dav*_*uma 12

我试图在设备上配置我的应用程序时遇到同样的问题(在模拟器中工作正常).当尝试重新符号化时,我的应用程序二进制文件根本没有显示在"dSYM位置"对话框列表下,因此我无法选择它,然后使用"定位"按钮将相应的dSYM关联,因为其他答案已建议.

通过转到Xcode中的Edit Scheme并将Profile build更改为Debug而不是Release,我能够在设备分析中获得符号.

  • 但这可能会改变您的测试性能.仪器应始终在释放模式下运行. (4认同)

fis*_*ear 9

这是我在不切换到调试模式的情况下启用分析的方法.这适用于Xcode 4.5.1

  1. 基于现有的"Release"配置创建新的"Profile"构建配置:在项目导航器中选择项目以打开项目编辑器.在项目编辑器中选择项目,然后单击"信息"按钮.展开"信息"窗格中的"配置"部分,然后单击该部分底部的"添加"(+)按钮.从弹出菜单中选择现有的"Release"配置作为新配置的起点.选择副本的名称,然后键入"配置文件".请参阅Xcode用户指南中的更多内容.

  2. 将"配置文件"配置的代码签名标识设置为"iPhone Developer"(或与"调试"配置相同):单击"生成设置"按钮以显示项目的生成设置.要更改项目中所有目标的新配置中的构建设置,请在项目级别编辑它们.要更改单个目标的构建设置,请选择该目标.如果在项目级别编辑它们,请确保之后再仔细检查目标级别:目标设置会覆盖项目设置.代码签名标识位于"代码签名"部分.

  3. 确保"配置文件"配置的"生成调试符号"设置为"是".我的情况已经是YES了.

  4. 设置要使用"配置文件"方案的新"配置文件"配置:从菜单中选择"产品 - >编辑方案",选择左侧的"配置文件appname.app"选项卡,然后选择"配置文件"下的"配置文件" "构建配置".

  5. 在appname.entitlements文件中,将"get-task-allow"属性设置为YES.

  6. 按ALT键,然后从菜单中选择"Product-> Clean Build Folder".

  7. 现在从菜单中选择"产品 - >配置文件",你应该好好去.

如果你不做所有这些,可能会发生各种奇怪的事情.我根本没有出现任何符号,或只显示库符号.如果您首先进行调试构建,那么我只有符号出现,然后进行配置(这意味着符号可能不正确地从调试版本中获取).我让剖析器抱怨UUID不匹配,并且我有臭名昭着的"Entitlements不匹配"错误(详见此处).


Rob*_*ier 2

他们的意思是按“查找”按钮,然后在 中找到您的应用程序~/Library/Developer/Xcode/DerivedData。然而,我发现以下方法似乎有效:

  • 首选项 > 搜索路径
  • 添加~/Library/Developer/Xcode/DerivedData(我实际上将其设置为 /Users/rnapier/...,所以我不确定 ~ 是否有效)

这对我来说并不总是自动象征。但它允许我使用“文件”>“重新符号化文档”,然后只需点击“符号化”按钮,它就对我有用了。事实上,这不能“开箱即用”,这太疯狂了……

我建议复制radr://10158512(它本身就是 10015727 的副本,但 openradar 中没有这个)。