下面开始解析crash文件
1.在桌面新建一个文件夹,名字叫crash
2.将.ips文件更名为.crash文件并放到crash文件夹中
3.前往文件夹路径 /应用程序/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources
复制symbolicatecrash脚本并粘贴到crash文件夹中
4.复制xxx.app.dSYM文件粘贴到crash文件夹中
5.打困轿开终端输入命令:
cd/Users/example/Desktop/crash //进入到桌面crash文件夹中
./symbolicatecrash /Users/example/Desktop/crash/59129929.crash/Users/example/Desktop/crash/xxx.app.dSYM >岩如 log.crash //进行crash日志解析
如果终端报错:
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
输入:
exportDEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
然后再输入:
./symbolicatecrash /Users/example/Desktop/crash/59129929.crash /Users/example/Desktop/crash/xxx.app.dSYM >log.crash //进行crash日志解析
6.在crash文件中就会新增log.crash文件,然后分析bug就可以了。
平时在ios开发过程中不管是开发人员还是测试人员,都会遇到APP崩溃的情况,这个时候就要求开发者集成一些像bugly一样的工具,但是没有集成bug解析工具的是怎么去定位crash的具体位置的呢?像对于一个ios设备来说,如果设备上的某款APP发生crash,那么是能够在手机内查找到crash信息的,方法就是设置->隐私->分析->分析数据;文件名格式就是APP包名+时间的ips文件,一眼就能定位出哪一个APP什么时间发生的crash,接下来导出你关注的ips文件。
在桌面新建crash文件夹,该文件夹需要导入四样东西;
第一个 :从设备导出的ips文件,需要改后缀名为crash
第二个 :找到
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash 路径,把symbolicatecrash拷贝到crash文件夹中
第三个 :打开Xcode->window->Organizer,找到对应版本的archives,右键Show in Finder,选中xcarchive文件右键显示包内容,拷贝出dSYMs文件夹下的dSYM文件
第四个 :打开Xcode->window->Organizer,找到对应版本的升者毕archives,右键Show in Finder,选中xcarchive文件右键显示包内容,拷贝出Products->Applications文件夹下的APP文件
此时crash文件夹下文件:
然后打开终端,cd到crash文件夹下执行以下命令:
./symbolicatecrash xxx.carsh xxx.dSYM >log.carsh
执行之后,终端可能报错 Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
继续执行以下命令:
export DEVELOPER_DIR="/Applications/Xcode.app/嫌逗Contents/Developer"
然后,再继续执行声场log的命令,此时crash文件夹内应该就能看到一个log.crash文件,打开此文件,就能更好的定位问题所在了。
因为解析前的ips文件是十六进制的堆栈信息,所以我们需要对这些数据进行符号化转换,将堆栈地址转化为我们可识别的一些类名、方法名等符号信息。
放吵芹上两张解析前后的图对比一下:
解析前:
解析后:
最近遇到测试给到ips文件,在此记录下ips文件符号化陆仿的步骤。
第一步:早宏纤导出ips文件
方法就是在手机里找到设置->隐私->分析->分析数据;文件名格式就是APP包名+时间的ips文件
第二步:准备相关文件
在桌面新建carsh文件夹,该文件夹需要导入绝老四样东西;
第一个 :从设备导出的ips文件,需要改后缀名为crash
第二个 :找到
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash 路径,把symbolicatecrash拷贝到crash文件夹中
第三个 :打开Xcode->window->Organizer,找到对应版本的archives,右键Show in Finder,选中xcarchive文件右键显示包内容,拷贝出dSYMs文件夹下的dSYM文件
第四个 :打开Xcode->window->Organizer,找到对应版本的archives,右键Show in Finder,选中xcarchive文件右键显示包内容,拷贝出Products->Applications文件夹下的APP文件
第三步:开始解析
然后打开终端,cd到carsh文件夹下执行以下命令:
./symbolicatecrash xxx.carsh xxx.dSYM >log.crash
执行之后,终端可能报错 Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
继续执行以下命令:
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
然后,再继续执行之前命令,此时carsh文件夹内应该就能看到一个log.crash文件,打开此文件,就能更好的定位问题所在了。
生成的log.crash文件则为符号化了的崩溃日志
注意检查.app.dSYM与.app的uuid是否一致
dwarfdump --uuid 名称.app.dSYM
dwarfdump --uuid 名称.app/名称
因为解析前的ips文件是十六进制的堆栈信息,所以我们需要对这些数据进行符号化转换,将堆栈地址转化为我们可识别的一些类名、方法名等符号信息。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)