当前位置:编程学习 > wap >>

ios crash文件分析

       IOS程序在真机运行程序出现crash状况时,机器会自动产生log文件,它包含了在程序crash之前的运行逻辑,分析carsh文件,有效的解决程序在真机上的问题,保证程序良好的稳定性,但是这个crash文件多数是显示出现问题的地址和一些系统的消息,无法查看程序中对应的崩溃地点,以下文章帮你解决这个问题。

分析崩溃原因,需要三个东西,第一,crash文件,第二,symbolicatecrash,第三,dysm和app文件

0. 在桌面创建一个临时文件夹,如crash

1. 首先要从设备中导出crash文件,最简单直接的办法是设备连接到mac上,打开xcode的organizer,然后选择其顶端选中devices,在左边的列表里,就能显示出当前连接的设备信息,选择当前设备下的device logs,等待片刻,中间的列表里会出现很多panic的信息,按照时间排序可以找到最近崩溃的crash,然后右键导出此文件.文件名自动保存为.crash文件,形如: xxx_2013-08-15-200743_-iPad.crash, 将这个文件拷入第一步创建的临时文件夹备用

2. symbolicatecrash是xcode自带的工具,为了方便调用,可以做一个快捷方式,方便在任意路径下调用
首先在termail下,输入find /Applications/Xcode.app -name symbolicatecrash -type f,用来查找symbolicatecrash的真实位置,
一般情况下,会返回如下路径

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash

下一步建立快捷方式
sudo ln -s "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash"  /usr/local/bin/symbolicatecrash


3.dysm文件存在于最后发包的机器上,使用打开xcode的organizer,选择顶部的archives,看到最后的发包记录,选择distribute保存为相应的archive文件,查看包内容,里面有我们需要的.dSYM文件

app文件用刚才同样的方法,dictribute保存为ipa文件,把文件名扩展名改为zip,解压后可以得到最后的app文件。将这两个文件拷入第一步创建的临时文件夹备用

万事俱备,只差最后一步,termail下进入第一步创建的临时文件夹,

使用命令 symbolicatecrash xxxx.crash  xxxx.dsym > crash.text   将最后分析出来的文件保存在crash.text文件中

形如 symbolicatecrash xxx_2013-08-15-200743_iPad.crash xxxx.app.dSYM >crash.text

 

 

注意,一般情况下,第一次使用symbolicatecrash会产生一个error,如下的错误信息

Error: "DEVELOPER_DIR" is not defined at /usr/local/bin/symbolicatecrash line 53.


解决办法是输入export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer

 

 

补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,