我刚刚将我的xcode升级到4.5版本,我尝试了三种方式来表示崩溃日志,但都没有成功。
首先,我从设备上获取了崩溃日志,然后将其导入到Organizer的“设备日志”中,但是我的应用程序的确切功能无法显示,内存地址仍显示在结果中。
其次,我将'symbolicescrash'文件从'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources'复制到'/ usr / local / bin'并将.DSYM文件,.app文件和.crash文件放入文件夹,运行命令:'symbolicatecrash Myapp.crash',结果仍显示内存地址。
最后,我尝试了http://xperienced.com.pl/blog/symbolicate-ios-crash-report的方法,但仍然不幸运。
请帮助我解决这个问题?
提前致谢!
答案 0 :(得分:9)
我根据https://github.com/TheRealKerni/QuincyKit/issues/46中的讨论解决了这个问题。并从https://github.com/TheRealKerni/QuincyKit/blob/3c4a0b163ac71599a7795508fe6a91c1ced9daa6/server/local/symbolicatecrash.pl运行perl脚本以获得正确的结果。
@Kerni,谢谢你的剧本!
答案 1 :(得分:2)
如果您的应用名称中包含国际字符(例如“ø”,“ô”,“ç”),则符号化将失败。符号化过程中的各个步骤会弄乱这些字符,从而导致符号路径无效。
答案 2 :(得分:2)
你关掉了聚光灯吗? symbolicatecrash使用聚光灯来查找二进制文件和dsym文件,因此如果您关闭了聚光灯,那么它将无法找到它们。无论如何,这里是如何将十六进制堆栈跟踪地址转换为行号:
[1]找到.dSym文件,方法是转到XCode-> Organizer,点击档案,然后右键点击档案,然后进入这个目录(你只需将文件夹拖到一个shell窗口中)。 / p>
[2] cd进入dSYMs目录。
[3]运行dwarfdump命令将十六进制地址转换为代码中的行号:
dwarfdump --arch armv7 myApp.dSYM --lookup 0xaabbccdd | grep 'Line table'
答案 3 :(得分:1)
我安装了Xcode 4.5和4.4.1,删除4.4.1后,符号化问题得到修复。
答案 4 :(得分:1)
如果您还没有尝试过,请将您的mac升级到OSX 10.8.2。我 运行OSX 10.7.5,并立即升级 修复了我的sybolication困境。
我已经尝试了很多一切来让我的崩溃日志符号化。我之前从未遇到过任何问题,但自从我查看崩溃日志以来已经过了几个月;在那个时期的某个时刻,我升级到了Xcode 4.5.2。在我看来,使用Xcode 4.5.2 symbolicatecrash perl脚本的东西在运行OSX 10.7.5的mac上无法正常工作。在symbolicatecrash中,它调用atos来对地址进行sybolic;它找不到匹配的符号,即使我知道一个事实我有正确的xcarchive。无论如何,如果你能买得起20美元,那么OSX 10.8.2的春天,希望这对你有用。