6

我正在运行 XCode 4.5.2,但在使 symbolicatecrash 正常工作时遇到问题。

请注意,这是针对不是在我的系统上生成且不在存档中的应用程序和 dsym。

到目前为止,我已经:

  1. 导出 DEVELOPER_DIR=/Applications/Xcode.app sudo xcode-select
  2. sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
  3. cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources
  4. ./symbolicatecrash -v -o test.txt ~/Downloads/OnDeckCrash/OnDeck_2012-11-26-152754_Andys-phone.crash ~/Downloads/OnDeckCrash/OnDeck.app.dSYM

这没有创建“test.txt”。它似乎根本找不到任何符号。它为每个模块报告类似的内容:

...........fetching symbol file for CoreFoundation--[undef] 
Searching []...-- NO MATCH
Searching in Spotlight for dsym with UUID of e30fc309df7b3c9f8ac57f0f6047d65f
Running mdfind "com_apple_xcode_dsym_uuids == E30FC309-DF7B-3C9F-8AC5-7F0F6047D65F"
@dsym_paths = (  )
@exec_names = (  )
Did not find executable for dsym
## Warning: Can't find any unstripped binary that matches version of /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation

请注意,应用程序包与 mSYM 包位于同一目录中。我还尝试将 symbolicatecrash 添加到我的路径中,并从 .dSYM 和 .app 所在的目录执行。那没什么区别。

关于如何让它工作的任何建议?

4

4 回答 4

13

我今天遇到了同样的问题。在我的情况下,mdfind 无法搜索 Archives (/Users/xxx/Library/Developer/Xcode/Archives/) 文件夹。所以我所做的是转到系统偏好设置-> 聚光灯-> 隐私,添加然后删除档案文件夹。重启 Xcode 或重新符号化

mdfind 用于 symbolicatecrash 以在您的情况下使用 uuid 查找相对于崩溃文件的 dsym

mdfind "com_apple_xcode_dsym_uuids == E30FC309-DF7B-3C9F-8AC5-7F0F6047D65F"

你也可以运行

mdfind "com_apple_xcode_dsym_uuids == *"

列出 mdfind 知道的所有 dsym 位置。这会让你知道你的 dsym 是否在列表中

还为您的 dsym 运行此程序以获取您的应用程序的 uuid

dwarfdump --uuid xxx.app.dSYM/| tr '[:upper:]' '[:lower:]' | tr -d '-'
于 2013-01-16T09:51:58.973 回答
1

如果您从未将崩溃的设备连接到您的计算机,则您没有此设备的符号文件。这就是 symbolicatecrash 找不到系统库的 dsym 文件的原因。

只需将您的设备连接到计算机并等待 xcode 下载符号文件。

于 2015-02-03T10:00:25.930 回答
1

此问题与如何告诉 Spotlight 为我的 .dSYM 捆绑包编制索引有关?

我试图在我的 ~/Library 中强制导入 dSYM,但没有成功,所以答案是:

FINAL SOLUTION

Configure Xcode so that the archive folder is located outside of ~/Library.
于 2014-09-25T06:47:48.137 回答
0

On line 4 the last argument should be the directory that contains the .app and the .dSYM. At least that is what I do when I run the symbolicatecrash script from the command line.

于 2012-12-06T18:50:27.783 回答