我收到了一个没有象征的AirBrake.io的崩溃报告.由于崩溃报告的格式与Apple crashlog不完全相同,所以我不能像往常一样将其放在XCode上,所以我从XCode存档中完成了同样的构建,试图在命令行上对它进行符号化.具有以下结果:
$atos -o kidsapp.app/kidsapp 0x0002fc4c 0x0002fc4c (in kidsapp)
我绝对肯定我正在使用与崩溃报告相同的构建.所以我也试过dwarfdump:
$dwarfdump --lookup 0x0002fc4c --arch armv7 kidsapp.app.dSYM ---------------------------------------------------------------------- File: kidsapp.app.dSYM/Contents/Resources/DWARF/kidsapp (armv7) ---------------------------------------------------------------------- Looking up address: 0x000000000002fc4c in .debug_info... not found. Looking up address: 0x000000000002fc4c in .debug_frame... not found.
也没有结果.除了使用错误的dSYM文件,还有什么可以做错的吗?我知道这是正确的,因为这是AirBrake的崩溃报告中引用的版本,它在我的XCode存档中.
欢迎任何想法/提示!
解决方法
首先检查dSYM是否真的是该应用程序的正确的:
dwarfdump --uuid kidsapp.app/kidsapp dwarfdump --uuid kidsapp.app.dSYM
两者都应该返回相同的结果.
接下来检查dSYM是否有任何有效的内容
dwarfdump --all kidsapp.app.dSYM
这应至少给出一些信息,而不是找不到.
我猜这个dSYM是坏的.一般来说,您可能希望使用崩溃记录器,为您提供所有线程和最后一个异常追溯信息的完整崩溃报告.我建议使用基于PLCrashReporter的东西,例如QuincyKit(您的Mac上的开源SDK服务器符号)或HockeyApp(开源SDK付费服务器端符号)(注意:我是开发人员之一!)