我正在尝试使用Xamarin.iOS为iOS应用程序buit表示崩溃转储。我看到很多关于无法找到系统二进制图像符号的警告,例如基金会,而symbolicate的输出最终会遗漏我需要的大部分信息。
我正在按照here描述的流程进行操作。我已将MyApp.app,MyApp.app.dSYM和崩溃日志放入目录并运行symbolicate -o crash.txt "crashreport.crash" "MyApp.app"
。输出crash.txt不包含符号,我在符号控制台输出中看到很多错误。例如:
Finding Symbols:
.fetching symbol file for Foundation--[undef]
Searching []...-- NO MATCH
Searching in Spotlight for dsym with UUID of e596bd80bcc83f15aca36a7ef014f457
Running mdfind "com_apple_xcode_dsym_uuids == E596BD80-BCC8-3F15-ACA3-6A7EF014F457"
@dsym_paths = ( )
@exec_names = ( )
Did not find executable for dsym
## Warning: Can't find any unstripped binary that matches version of /System/Library/Frameworks/Foundation.framework/Foundation
完整输出位于http://pastebin.com/W1KP1iTR
我使用dwarfdump来验证MyApp.pSYM中的UUID是否与崩溃转储中的UUID相同。
我正在使用Xamarin studio 5.7.1和xcode 6.1.1。
有人能说出这里出了什么问题吗?
答案 0 :(得分:1)
Apple的 symbolicate 工具要求您在查询符号之前将所有可执行文件和mach-o二进制文件添加到Spotlight数据库。
这当然是一项繁琐的工作。我永远无法找到如何从索引中删除它,或者知道队列已经完成了什么,并且对其UUID的二进制文件进行了索引。
插件:我写了这个symbolicate-pro工具。
这是我为TestFairy(公司)编写的程序。它被称为 symbolicate-pro ,它有一些与Apple有关的关键区别:
TestFairy将其用于生产,并在iOS更改崩溃报告时进行更新。
您可以在github上找到它:https://github.com/testfairy/symbolicatecrash-pro
希望这会有所帮助;)