我们使用Parse.com崩溃报告。集成很简单,符号信息的上传工作(日志文件中的成功消息)和崩溃报告到达Parse.com网站。
但是,堆栈跟踪包含错误的名称,并且没有我们自己代码的行信息,就像我们没有上传符号信息一样,例如:
0 CoreFoundation __exceptionPreprocess @ 0x84
1 libobjc.A.dylib objc_exception_throw @ 0x38
2 CoreFoundation -[NSException raise] @ 0x8
3 MyApp _TToFC9MyApp23TestViewController13viewDidAppearfS0_FSbT_ @ 0x1f4
4 UIKit -[UIViewController _setViewAppearState:isAnimating:] @ 0x24c
上传符号信息成功。否则崩溃报告将包含警告:此堆栈跟踪是非符号化的。获得符号...... 但我们没有得到警告。
是否与发布模式下的某些编译器设置有关(我们只上传发布版本的符号)?或者可能是非符号化堆栈跟踪的原因是什么?
答案 0 :(得分:3)
我会假设您正在使用Swift? - 如果是这样,那么在Mike Ash博客上有一篇很好的文章,说明为什么以及如何发生这种情况:https://mikeash.com/pyblog/friday-qa-2014-08-15-swift-name-mangling.html
您也可以通过启动终端并运行xcrun swift-demangle SYM
来解析名称 - 但是您需要在编译应用程序时使用相同版本的swift编译器执行此操作。
谢谢, 丹
答案 1 :(得分:2)
尝试在复制期间将条带调试符号设置为“否”:
我不确定这些下一个设置是否可以帮助您,但只是尝试为其他2个设置设置为NO:“剥离链接产品”和“部署后处理”
然后,如果它仍然不起作用,请在调试模式下测试您的应用程序。
答案 2 :(得分:1)
我的两分钱是你发送消息到一个解除分配的对象,但没有完整的堆栈跟踪是不确定的。