iOS DSYM分析小工具 – (DSYM分析无脑教程)
2017年4月24日iOS Standard
iOS初学者们经常会对着友盟或其他分析平台的CrashLog一脸懵B,举个栗子:
- -[NSNull rangeOfCharacterFromSet:]: unrecognized selector sent to instance 0x197941e70
- (null)
- (
- 0 CoreFoundation 0x00000001854802f4 <redacted> + 160
- 1 MyApp 0x22e4abcdef -[MyApp initView] + 65
- 2 CoreFoundation 0x00000001854873a4 <redacted> + 0
- 3 CoreFoundation 0x0000000185484154 <redacted> + 928
- 4 CoreFoundation 0x0000000185386ccc _CF_forwarding_prep_0 + 92
- 5 UIKit 0x000000018a236c44 <redacted> + 104
- )
- dSYM UUID: XXXX
- CPU Type: arm64
- Slide Address: 0x0000000100000000
- Binary Image: XXX
- Base Address: 0x0000000100014000
那我们虽然知道是在0x22e4abcdef -[MyApp initView]这里出错,却无法定位到具体行数,怎么办呢?
一、非常重要,找到发布到AppStore的包对应的dsym,如果没有就扑街,后面不用看了
查找方法:首先确定是你打的包,然后
打开Xcode,Window->Organizer->选择APP->Archives列表中选中你当时上架的那个版本->右键,Show In Finder->右键,显示包内容->dSYMs->Your app.dSYM
二、下载小工具并分析dSYM
原理什么的我就不讲了,要不然怎么叫无脑教程…点击下载DSYM Analysis分析工具
解压后将Your app.dSYM复制到此文件夹,
1、将crash.sh中的xxxx.app.DSYM替换为Your app.dSYM
2、将bugsAddress.txt中内存地址替换为出错地址(本例为0x22e4abcdef)
打开终端,cd到该文件夹,执行
sh crash.sh
3、在本文件夹输出了一份报告,正常的话里面可以看得到具体出错行数。收工。
发表评论或回复