symbolicatecrash不喜欢我的dSYM文件

Eli*_*Eli 3 iphone crash-dumps symbolicatecrash

我正在尝试使用symbolicatecrash,并获得有趣的结果.同事在另一台机器上构建了我们的分发版,所以他给我发了dSYM文件.运行中找到的symbolicatecrash文件后

/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash

它填补了所有Apple功能,但不支持我的功能.问题似乎是它不能(或不会)找到dSYM文件,可能是因为它有我的同事的机器信息.当我从崩溃报告中复制十六进制地址时,我可以像这样使用dwarfdump:

dwarfdump --lookup 0x0001f892 --arch ARMv6的路径/到/ MyApp.app.dSYM

它正确地给了我单个呼叫的行号.此外,symbolicatecrash能够从我们的代码中计算游戏的行号,而不是Apple的.我不知道为什么他不能看到苹果的东西,但是这一切都使我相信这个问题是寻找的dSYM,如前所述.

所以.有没有什么办法,只是传递的dSYM的路径进入symbolicatecrash命令,或使其工作的一些其他的方式?因为,严肃地说,制作一个为你的文件做某种魔术"搜索"的工具是完全愚蠢的,但却因为它不想要而找不到它.

另外,任何想法为什么我的同事的构建不会显示Apple的任何功能?虽然我在这里,崩溃文件中的"+"是什么意思?像这样:

0x00059f8c - [UIWindow sendEvent:] + 108

Den*_*kem 6

symbolicatecrash是一个巨大的黑客,你可以做的最好的事情是学会完全按照你的期望做事.或者阅读它的内部并修复它,但是你必须为下一次SDK更新重新修复它...

在这种情况下,我认为您的问题是您没有将dSYM文件放在与应用程序包相同的文件夹中.它必须与XCode完全一样,它应该位于聚光灯会找到它的位置.此外,确保名称完全符合预期 - "dSYM"的确切外壳很重要,我听说由于错误,应用程序名称中不支持任何点.

如有疑问,请始终尝试-v选项以获取更详细的错误消息.

Apple二进制文件没有行号信息,我个人非常乐意至少获得函数名称.可能会更糟.

在" - [UIWindow sendEvent:] + 108"中表示从函数开始的108个字节.对这些数据唯一有用的解释是,如果数字很小,那么它可能是准确的,如果数字很大,你的符号就不合适了.