xcode symbolicatecrash 无法找到任何符号

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13750314/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 02:15:49  来源:igfitidea点击:

symbolicatecrash is unable to find any symbols

iosxcodesymbolicatecrash

提问by CasaDelGato

I'm running XCode 4.5.2 and am having problems getting symbolicatecrash to work.

我正在运行 XCode 4.5.2 并且在使symbolicatecrash 工作时遇到问题。

Note that this is for an app and dsym that were NOT generated on my system, and aren't in an archive.

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

So far I've:

到目前为止,我已经:

  1. export 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
  1. 导出 DEVELOPER_DIR=/Applications/Xcode.app sudo xcode-select
  2. 须藤 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

This did NOT create a "test.txt". It seems to be unable to find any symbols at all. It reports something like this for every module:

这并没有创建“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

Note that the app package is in the same directory as the mSYM package. I've also tried adding symbolicatecrash to my path, and executing from the directory where the .dSYM and .app are located. That made no difference.

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

Any suggestions on how to get this to work?

关于如何让它发挥作用的任何建议?

回答by Ashishail

I had the same problem today. In my case the mdfind was not able to search the Archives (/Users/xxx/Library/Developer/Xcode/Archives/) folder. So what I did was went to System Preferences->Spotlight->Privacy, added and then removed the Archives folder. Restart Xcode or Re-symbolicate

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

mdfind is used in symbolicatecrash to find dsym relative to the crash file with uuid in your case

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

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

you can also run

你也可以运行

mdfind "com_apple_xcode_dsym_uuids == *"

to list all the dsym locations mdfind knows. This will give you the idea if your dsym is in the list or not

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

Also run this for your dsym to get uuid of ur app

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

dwarfdump --uuid xxx.app.dSYM/| tr '[:upper:]' '[:lower:]' | tr -d '-'

回答by ??u??

This issue is related to How can I tell Spotlight to index my .dSYM bundles?

此问题与如何让 Spotlight 为我的 .dSYM 包建立索引有关?

I've tried to force importation of dSYM in my ~/Library, but without success, so the answer is :

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

FINAL SOLUTION

Configure Xcode so that the archive folder is located outside of ~/Library.

回答by Kaloyan Donev

If you never connect crashed device to your computer, you don't have symbol files for this device. That's why symbolicatecrash cannot find dsym files for system libraries.

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

Just connect your device to computer and wait xcode to download symbol files.

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

回答by rmaddy

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 symbolicatecrashscript from the command line.

在第 4 行,最后一个参数应该是包含 .app 和 .dSYM 的目录。至少这是我从命令行运行symbolicatecrash脚本时所做的。