[英]How to sybolicate iOS crash reports from BugSense?
我开始通过BugSense从我的iOS应用程序收到崩溃报告。 我已将调试符号包含在我的应用程序中,并获取有关错误的信息,例如。 “ * - [NSMutableArray objectAtIndex:]:索引0超出空数组的边界”以及堆栈跟踪,例如:
Full Stacktrace
0 CoreFoundation __exceptionPreprocess 114
1 libobjc.A.dylib objc_exception_throw 24
2 CoreFoundation -[__NSArrayM objectAtIndex:] 184
3 Myapp Myapp 738167
4 UIKit -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] 662
5 UIKit -[UITableView _userSelectRowAtPendingSelectionIndexPath:] 130
6 Foundation __NSFireDelayedPerform 368
7 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ 14
8 CoreFoundation __CFRunLoopDoTimer 850
9 CoreFoundation __CFRunLoopRun 1088
10 CoreFoundation CFRunLoopRunSpecific 230
11 CoreFoundation CFRunLoopRunInMode 58
12 GraphicsServices GSEventRunModal 114
13 GraphicsServices GSEventRun 62
14 UIKit -[UIApplication _run] 404
15 UIKit UIApplicationMain 670
16 Myap p Myapp 11901
17 Myapp Myapp
但是,我想象征报告,以便我可以准确地确定我的代码中的错误位置。 如何从Bugsense获取报告数据并执行此操作? 有没有办法从BugSense下载“常规”崩溃报告并使用它,或者他们提供的数据是否足以以某种方式解决? 我知道报告来自哪个版本的应用程序,所以我知道哪些二进制文件符号化。
BugSense的工作原理是获取设备上的符号并将其发布到服务器上,其格式与您在崩溃日志中看到的格式类似。 BugSense获取异常堆栈跟踪,当它找不到时,崩溃的线程堆栈跟踪。 由于各种原因,这并不总是完美的。
您发布的堆栈跟踪部分符号化。 看起来BugSense在您自己的代码中获取符号时出现问题。
如果您已遵循信函的使用指南,则可能是框架本身失败。 atos应该可以帮助您发现代码中的确切方法调用。
免责声明:我为BugSense-iOS.framework编写代码。
如果您有免费的BugSense帐户,它将不会为您提供崩溃报告。 但是,您可以支付每月19美元来启用此功能。 或者你可以尝试使用我写的这个python脚本。
你也可以尝试用Crittercism进行符号化 。 我过去一个月一直在使用它们,它们的符号系统已经被发现。
我今天必须自己完成这件事。 我在Ray Wenderlich网站上找到了一个教程:
http://www.raywenderlich.com/33669/overview-of-ios-crash-reporting-tools-part-1
我一直在以错误的方式使用Bugsense(没有符号和面包屑>。<)。
注意:breadcrumb是相当昂贵的版本。
无论如何,从教程中,我发现我需要将dSYM文件夹作为压缩文件上传到Bugsense。
这个文件夹本质上允许原始堆栈跟踪符号化,哪些函数调用导致崩溃,也显示行号。
进行存档时,可以在“窗口”>“管理器”中获取存档文件。
要获取dSYM文件,您需要:
在窗口>管理器屏幕中右键单击存档>在Finder中显示。
然后右键单击文件>显示打包内容,这将显示dSYM文件夹。
右键单击并压缩该文件夹。
登录您的bugsense帐户,查找您的应用程序,转到设置页面,左侧应该有一个名为“dSYM”的标签。 点击它,然后按浏览和上传按钮上传您的dSYM。
现在你可以找到你的每一个bug并按下“symbolicate”按钮,这将变成所有那些讨厌的:
0000x1aeaf390a
将消息发送到以下内容:
MyViewController:m110, [MyViewController objectAtIndex:17] out of bounds
您需要为每次生成应用程序的新捆绑版本时生成的相应存档上载相应的dSYM压缩文件。
否则,如果您尝试使用没有此dSYM的Bugsense,您将获得无用的堆栈跟踪。
希望将来有益于任何人。 祝好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.