记录还原crash log过程

来源:互联网 发布:淘宝卖家发货app 编辑:程序博客网 时间:2024/05/04 12:26

第一阶段

第一步、找到symbolicatecrash文件(可以理解为还原工具)

1.路径为/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
这里写图片描述
2.如果用1的路径找不到,可以在终端输入find /Applications/Xcode.app -name symbolicatecrash -type f或者sudo find / -name "symbolicatecrash"找到所有Xcode版本下的symbolicatecrash

第二步、找到.dSYM文件(符号表,用来还原crash log为我们看得懂的文字)

1.在工程配置的 Build Settings -> Build Options -> Debug Information Format一栏中选择配置为”DWARF with dSYM File”
2.假设在模拟器debug,在/Users/君の名/Library/Developer/Xcode/DerivedData/君のApp/Build/Products/Debug-iphonesimulator/君のApp.app.dSYM 可以找到

第三步、找到应用程序文件

  1. (appName.app文件,把IPA文件后缀改为zip,然后解压,Payload目录下的appName.app文件), 这里的appName是你的应用程序的名称。

第四步、找到crash报告

1.Xcode->Device->选择你的手机->根据时间点找到crash log文件->右键导出

这里写图片描述

第二阶段

首先,将symbolicatecrash拷到系统目录下:
$ sudo cp /xx/xx/xx/symbolicatecrash /usr/local/bin

(……妈蛋我这里拷失败了,一直提示没有这个目录,找不到解决方案,尝试Plan B=。=)

命令使用crash文件,应用的dSYMcrash文件中崩溃地址对应的方法符号表, 在处理之前,请依然将“.app“, “.dSYM”和 “.crash”文件放到同一个目录下,然后执行以下命令:

$ export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

$ ./symbolicatecrash Test.crash Test.app.dSYM/ > crash.log

Plan B

在终端输入(切换到四个文件目录下先)
$ atos -o Test.app.dSYM/Contents/Resources/DWARF/Test -l 0x1000e8000 0x100ff6770 0x10170ffdc 0x10170bec0
(命令结构为atos [-o AppName.app/AppName] [-l loadAddress] [-arch architecture] //atos命令使用指定模块(-o参数) 模块加载地址(-l参数) 函数栈地址来解析出符号)
这里写图片描述
先输紫色的,然后输入蓝色的,蓝色的可以输一个也可以输多个(空格隔开)

然后就能看到还原。(看到这一幕会落泪的,不贴图,自己去体会)

0 0
原创粉丝点击