IOS友盟统计Bug追踪

项目开发之初安卓和IOS都是使用Bugly来统计bug的后期IOS上线过程中被退回提示一个关于Bugly的upload的一个方法冲突,然后IOS就改用友盟的,不过比较头疼的是捕获的IOS问题并不像安卓一样能够清晰,只显示内存地址,前期没有经验导致IOS打包人员没有保存xcarchive文件,也就无法定位了。最新的版本上线了让其发给我当前版本的xcarchive来定位分析bug,在网上搜索了一下,使用一个工具(dSYM文件分析工具)来分析。

1、准备内容

dSYM文件分析工具,当前发布版本的xcarchive文件,当前发布版本的友盟Bug记录

2、操作说明

打开dSYM文件分析工具(图1),将xcarchive文件拖到“请将dSYM文件拖拽到窗口中并选中任意一个版本进行分析”,然后点击拖拽的文件,会出现图2会自动填写选中dSYM文件的UUID。

技术分享

图1

技术分享

图2

打开友盟选择一个bug记录,如下:

-[NSNull rangeOfCharacterFromSet:]: unrecognized selector sent to instance 0x197941e70
(null)
(
	0   CoreFoundation                      0x00000001854802f4 <redacted> + 160
	1   libobjc.A.dylib                     0x0000000196ca40e4 objc_exception_throw + 60
	2   CoreFoundation                      0x00000001854873a4 <redacted> + 0
	3   CoreFoundation                      0x0000000185484154 <redacted> + 928
	4   CoreFoundation                      0x0000000185386ccc _CF_forwarding_prep_0 + 92
	5   UIKit                               0x000000018a236c44 <redacted> + 104
	6   UIKit                               0x000000018a3a52c0 <redacted> + 76
	7   UIKit                               0x000000018a3a5380 <redacted> + 56
	8   UIKit                               0x000000018a3a5464 <redacted> + 36
	9   QuartzCore                          0x0000000189800884 <redacted> + 320
	10  UIKit                               0x0000000189ed1f94 <redacted> + 160
	11  UIKit                               0x0000000189f973d0 <redacted> + 348
	12  UIKit                               0x000000018a1b5be8 <redacted> + 3220
	13  UIKit                               0x0000000189fa1268 <redacted> + 172
	14  UIKit                               0x0000000189ebd760 <redacted> + 580
	15  QuartzCore                          0x0000000189805e1c <redacted> + 152
	16  QuartzCore                          0x0000000189800884 <redacted> + 320
	17  QuartzCore                          0x0000000189800728 <redacted> + 32
	18  QuartzCore                          0x00000001897ffebc <redacted> + 276
	19  QuartzCore                          0x00000001897ffc3c <redacted> + 528
	20  QuartzCore                          0x00000001897f9364 <redacted> + 80
	21  CoreFoundation                      0x00000001854382a4 <redacted> + 32
	22  CoreFoundation                      0x0000000185435230 <redacted> + 360
	23  CoreFoundation                      0x0000000185435610 <redacted> + 836
	24  CoreFoundation                      0x00000001853612d4 CFRunLoopRunSpecific + 396
	25  GraphicsServices                    0x000000018eb776fc GSEventRunModal + 168
	26  UIKit                               0x0000000189f26fac UIApplicationMain + 1488
	27  ?????????                           0x00000001000450c4 ????????? + 200900
	28  libdyld.dylib                       0x0000000197322a08 <redacted> + 4
)

dSYM UUID: 95B2009C-C988-****-****-8393E7003FA8
CPU Type: arm64
Slide Address: 0x0000000100000000
Binary Image: ???
Base Address: 0x0000000100014000
首先对应bug中的dSYM UUID跟dSYM文件分析工具中的UUID是否一样。

在Bug记录中一般带有项目名称的或者由于乱码导致???的那行代码就是项目错误行拷贝内存地址

0x00000001000450c4
Slide Address: 0x0000000100000000
dSYM文件分析工具中,点击分析按钮,在有可能错误的地方就会显示当前内存地址对应的代码行。

技术分享

最后到项目中找到对应的行查找问题就可以了。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。