如何可靠地使Instruments 4.x符号化?

19

我遇到了一个问题——无论我怎么做,都无法使Apple的Instruments.app在我对设备进行性能分析时符号化所包含的任何工具(在iOS模拟器中可以正常工作)。

我尝试了几乎我能想到的所有方法,包括:

  • 检查是否实际上正在构建dSYM
  • 在Debug和Release构建方案之间切换
  • 确保签名证书使用的是我的开发证书
  • 将我的衍生数据文件夹添加和移除出Spotlight的隐私列表
  • 在进行性能分析之前执行清理和构建操作
  • 在构建和性能分析之前删除衍生数据文件夹

我不确定接下来该怎么做了——本周早些时候我有一两个小时的符号,但是我现在无法让它们完全显示出来。找到Instruments永远能够发现应用程序符号的秘诀会很好。

4个回答

18
在“文件”菜单中有一个重新符号化文档的选项。选择这个选项,您可以在列表中找到您的二进制文件,并使用“定位”按钮手动指定dSYM的位置。这里还有一个复选框可用于使用Spotlight查找dSYM;如果Spotlight曾经出现问题但现在被修复了,则可能已被停用。似乎当Instruments正在进行仪器分析时无法执行此操作,但它确实会保留设置以供下次记录使用。然而,在关闭Instruments之后,它似乎不会记住该设置。

1
谢谢Anomie - 我最终找到了相同的答案:http://tonyarnold.com/post/3627/what-to-do-when-all-you-have-is-symblolication/ - Tony Arnold
@TonyArnold:太遗憾了,如果你回来发布答案的话,我就不必自己想出来了 ;) - Anomie
5
我不能做到这一点,当我选择dsym工具时,它会显示:“重新符号化需要MyApp.app.dSYM和AppleProfileKEventAction具有匹配的UUID。” - Lio
我遇到了同样的问题。我的二进制文件没有显示在列表中。 - Prem
3
如果没有显示出来,请尝试将配置更改为开发模式。 - johnlinvc
4
如果列表中没有显示出来,请返回到Xcode并将发布目标的代码签名标识更改为开发者配置文件(而不是分发配置文件)。 - Norbert

18

你确定使用的是开发配置文件签名应用程序,而不是发布配置文件吗? 请注意,在使用仪器测试时,通常会使用发布版本构建,因此请确保您没有选择发布配置文件来进行您的发布配置。


这是一个非常古老的问题,这里的一些问题可能是由于工具链中的错误导致的(需要我在上面推荐答案中提供的解决方法)。我不确定这个问题是否仍然相关,因为我很久以前就没有遇到过符号化的问题了。不过还是感谢您的发帖 :) - Tony Arnold
4
这就是我的解决方法。我已经看了很多关于聚光灯、重新符号化等其他帖子,但最终发现问题就在于“资料配置文件”运行了您的发布配置文件,并且我们将发布配置设置为了面向Ad Hoc分发的“分发”模式。当我将发布配置设置为使用“开发人员”时,问题迎刃而解了。感谢@Dan! - RickDT
加一分支持。我忘记了我的发布版本证书已经从开发者变成了分发者,当我从git更新项目文件时。谢谢! - davehayden

0

0

我曾多次看到Instruments 4.2使用正确的dSYM文件无法符号化。

保存并退出/重新启动Instruments后,它将进行符号化。

(有时我会捕获一个小样本并确保它可以工作,然后再收集大样本。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接