图形化还原崩溃地址-iOS的crash文件分析

crash-图片来之网络

没有不会crash的app包括微信
没有不会crash的代码即使正常运行千年
只要有会看crash的程序猿

这一周是在不同的crash日志分析中度过的,公司的4个项目依次出现不同程序的随机崩溃。并且出现了非常多的灵异事件,即使看到了现象程序猿(!_! ME)也很难相信这是真的(想逃避)。当赤裸裸的现象一次又一次出现,直接导致手心出汗,精神失常(对于10年开发的我是致命的羞辱)。拿出斧头开始啃着“天外来客”。

考虑篇幅和阅读时长的习惯,在此略过以下内容:

  1. crash文件采集的具体步骤。
  2. crash文件中内容的含义解释。
  3. crash文件中崩溃种类的说明。
  4. dsym文件的来源和作用。
  5. crash中崩溃地址的手动解析的方法。
  6. 等等可以百度的内容。

记录下怎么图形化一步还原崩溃地址为可读代码的方法。

一、 Xcode还原法

最简单的方法是,提交app到app store的时候使用Xcode直接提交并且勾选上传dsym。如图

上传到app store

之后每周来查看一次崩溃日志
崩溃日志

Xcode已经直接图形化崩溃日志,并且有完整的调用棧。
注意:将代码回退到上传时的分支和相同commit处,不然指向的代码行错误。
DONE

二、 友盟还原法

1. 查看崩溃

使用友盟统计的功能也包含crash的采集,并且crash日志会在app重启后立刻上传,时效性较好。

crash

查看到形形色色的crash信息,建议升级到友盟最新版本,使得采集信息更加的准确。
查看一个崩溃详情,可以查看崩溃的调用棧,但是涉及到APP相关的,显示的只是64位的地址内容而不是方法名和行数。


崩溃详情

2. 查看dsym文件

需要上传崩溃文件对应的dsym,此时需要先查看崩溃日志对应的UUID

UUID

根据UUID查找dsym文件,如果没有使用bitcode那么直接在archive文件夹中可以找到。应该没有不用bitcode的吧,谁用谁知道它的好。
开启了bitcode那么需要到App Store Connect下载
DSYM

下载后看到一堆的dSYM文件,文件名前面的一段就是UUID。
dSYM

此时UUID和对应的dSYM都有了。

3. 上传dsym文件

到友盟iOS项目,选择"应用设置"后,选着左边的“符号表管理”,再点击“上传符号表文件”


上传dsym

选择指定的版本号后上传,上传成功后会显示解析完成。

4. 查看符号的崩溃调用棧

已经完美的完成解析了。如果你找到了对的dSYM文件的话,不然就SO SO SO (无能为力)


解析完成

可以很轻松的找到崩溃的地方,然后慢慢修改吧。 并且反省下为何为崩溃。

DONE

三、 SYM工具还原法

推荐dSYM的解析工具 SYM. 此方法针对从设备上获取crash文件后解析,使用非常给力。

1. 设备获取crash文件

连接设备到电脑后,打开Xcode选择Window下Devices and Simulators

查看设备日志

在当前设备,可以看到设备上所有的崩溃,你应该知道自己app的名称吧。 _
所有的崩溃日志文件

将崩溃日志全部选中,然后复制。

2. 查找UUID

在崩溃日志中搜索“Binary Images”,会看到app的名称,旁边的就是UUID了。


UUID

3. SYM分析

打开SYM app后,(1)将崩溃日志复制到内容中。(2)选择UUID对应的dSYM文件。 (3)点击执行按钮。

完成

查看红色的就是解析完成的,并且准确无误。GOOD。


后记

可能你没看懂,没关系请多看几遍。 如果对crash还是没了解,没关系再百度下。
也许你会推荐“DSYMTools”这个工具,我也一直用了5年,一直都很好用。只是最近分析出的内容不准确。所以建议你试试我介绍的方法。
另外再强调一点使用第三方库请慎重

补充一句

Android在友盟上也一样可以进行崩溃地址的解析,同样上传mapping文件就可以实现。

// END 2018-11-30 每天进步一点点

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,082评论 5 464
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,231评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,047评论 0 327
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,977评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,893评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,976评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,605评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,888评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,906评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,732评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,513评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,980评论 3 301
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,132评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,447评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,027评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,232评论 2 339

推荐阅读更多精彩内容