20

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

像这样的一些答案和这个说要按“重新符号化”,在列表中找到您的二进制文件,然后按“定位”以手动查找 dSYM。我的应用不在名为的列表中dSYM Locations

在此处输入图像描述

我怎样才能使我的结果具有象征意义?

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

4

6 回答 6

12

尝试在设备上分析我的应用程序时遇到同样的问题(在模拟器中运行良好)。尝试重新符号化时,我的应用程序二进制文件根本没有显示在“dSYM 位置”对话框列表下,因此我无法选择它,然后使用定位按钮关联适当的 dSYM,因为其他答案建议.

通过转到 Xcode 中的 Edit Scheme 并将 Profile 构建更改为 Debug 而不是 Release,我能够在设备分析中恢复符号化。

于 2012-10-06T21:02:39.830 回答
9

这是我为启用分析所做的,而无需切换到调试模式。这是针对 Xcode 4.5.1

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

  2. 将“Profile”配置的 Code Signing Identity 设置为“iPhone Developer”(或与您的“Debug”配置相同):单击 Build Settings 按钮以显示项目的构建设置。要更改项目中所有目标的新配置中的构建设置,请在项目级别编辑它们。要更改单个目标的构建设置,请选择该目标。如果您在项目级别编辑它们,请确保您在之后仔细检查目标级别:目标设置覆盖项目设置。代码签名身份位于“代码签名”部分。

  3. 确保“配置文件”配置的“生成调试符号”设置为 YES。就我而言,这已经是肯定的了。

  4. 设置“Profile”方案使用的新“Profile”配置:从菜单中选择“Product->Edit Scheme”,选择左侧的“Profile appname.app”选项卡,然后选择“Profile”下“构建配置”。

  5. 在您的 appname.entitlements 文件中,将“get-task-allow”属性设置为 YES。

  6. 按 ALT 键,然后从菜单中选择“产品->清理构建文件夹”。

  7. 现在从菜单中选择“产品->配置文件”,您应该可以开始了

如果你不做这一切,就会发生各种奇怪的事情。我根本没有出现任何符号,或者只有库符号出现。我只有在您首先进行调试构建时才会显示符号,然后再进行分析(这意味着这些符号可能是从调试构建中错误地获取的)。我让探查器抱怨 UUID 不匹配,并且我遇到了臭名昭著的“权利不匹配”错误(在此处查看更多信息)。

于 2012-11-23T11:58:26.217 回答
2

他们的意思是按下“定位”按钮,然后在~/Library/Developer/Xcode/DerivedData. 但是,我发现以下方法似乎有效:

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

这对我来说并不总是自动符号化。但它让我可以使用 File>Re-Symbolicate Document,然后点击“Symbolicate”按钮,它一直在为我工作。这不能“开箱即用”的事实是疯狂的....

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

于 2012-08-31T04:31:22.277 回答
1

如果您将“发布”构建配置的代码签名身份从“自动配置文件选择器:iPhone分发”更改为“自动配置文件选择器:iPhone开发”(强调我的),那么您的应用程序的二进制文件将列在 Instrument 的重新符号表中,并且您可以将其指向您的派生数据文件夹。

于 2013-04-03T01:28:58.517 回答
1

这也取决于 XCode 将您的构建放在哪里。您可以在 XCode 项目管理器中选择“MyCoolApp.app”,右键或控制单击“在 Finder 中显示”。并非所有项目设置都会将其放在 DerivedData 中(几个不同的项目设置可能会合谋将其放在不同的位置)。现在您已经找到 XCode 存放构建的位置,您可以尝试使用前面概述的步骤从那里将其添加到 Instruments。当单击“定位...”出现文件对话框时,您只需将 .app 从文件对话框的 Finder 中拖放到该目录即可。

于 2012-09-07T03:53:59.923 回答
0

上面提到的没有成功。Xcode 5 对我有用:

  • 如 quellish 的回答中所述获取您的产品的位置。前任。

    /Users/ME/Library/Developer/Xcode/DerivedData/Build/Products/Debug-iphoneos /Users/ME/Library/Developer/Xcode/DerivedData/Build/Products/Release-iphoneos

  • 打开 Instruments Preferences 并在“dSYMs And Paths”中添加位置。

于 2014-06-06T09:20:03.463 回答