概述
一· 首先找到日志分析工具Symbolicatecrash ,是Xcode自带的一个分析工具。一般情况下改文件是隐藏文件,所以首先要显示出该文件:
终端中输入以下命令
显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true
隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false
输入完回车,重启Finder:左上角的苹果标志-->强制退出-->Finder-->重新启动
二· 找到该分析工具文件的具体位置
1.导出crash log
通过Xcode的Organizer查看某台iphone设备的DeviceLog,选择需要的crash log,导出XXX.crash文件。
(如果设备就在身边,可以连接设备,打开Xcode-Window-Organizer,在左侧面板中选择Device Logs .如果应用程序已经提交到App Store发布,用户已经安装使用了,那么开发者可以通过iTunes Connect(Manage Your Applications - View Details - Crash Reports)获取用户的crash日志。不过这并不是100%有效的,而且大多数开发者并不依赖于此,因为这需要用户设备同意上传相关信息,详情可参见iOS: Providing Apple with diagnostics and usage information摘要。)如果处于测试阶段,测试人员已经安装了不同的版本(比如alpha、beta版本),那么需要保存好对应版本的二进制文件和符号文件,以便在应用程序崩溃时对crash日志进行解析。对于这种场景下产生的crash日志,只需要将.crash文件、.app文件和.dSYM文件三者放在同一个目录下,然后将.crash文件拖放到Xcode - Window - Organizer中左侧面板Library下的Device Logs中,即可进行解析。
如果要提交发布,那么我们通常会先执行Clean,再Build,最后通过Product - Archive来打包。这样,Xcode会将二进制文件和符号文件归档在一起,可以通过Organizer中的Archives进行浏览。
这里是一份关于如何解析crash日志的讨论:http://stackoverflow.com/questions/1460892/symbolicating-iphone-app-crash-reports 。
2.找到对应的app文件
找到当前iphone设备上安装的ipa文件,更改文件后缀名为zip,解压后得到Payload文件夹,你需要的app文件就在其中了。
3.找到对应build版本的dSYM文件
dSYM文件是iOS编译后保存16进制函数地址映射信息的文件,每次应用程序build后,都会生成对应的xxx.app, xxx.app.dSYM文件。
4.确定dSYM、app以及crash文件的关系
每一个xx.app, xxx.app.dSYM文件都拥有相应的uuid,crash文件也有uuid,只有三者uuid一至才表明之三者可以解析出正确的日志文件。
查看xx.app文件的uuid的方法,在terminal中输入命令:
dwarfdump --uuid xxx.app/xxx (xxx工程名)
查看xx.app.dSYM文件的uuid的方法,在terminal中输入命令:
dwarfdump --uuid xxx.app.dSYM (xxx工程名)
而.crash的uuid位于,crash日志中的Binary Images:中的第一行尖括号内。如:
armv7 <8bdeaf1a0b233ac199728c2a0ebb4165>
将对应的xxx.app.dSYM文件以及xxx.app文件以及xxx.crash文件拷贝到同一文件夹中,如:~/Desktop/DebugLog。
2)查找确认是否存在symbolicatecrash
ls -al | grep symbolicatecrash
3)将symbolicatecrash工具拷贝到/usr/bin目录下
sudo cp symbolicatecrash /usr/bin/symbolicatecrash
4)设置DEVELOPER_DIR系统变量
cd ~/
vi .bash_profile
并输入如下内容
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
保存并退出
source .bash_profile
5)重启终端,确认是否已正确设置DEVELOPER_DIR系统变量
echo $DEVELOPER_DIR
查看输出结果是否为/Applications/Xcode.app/Contents/Developer
6)查看PATH系统变量是否存在如下路径/usr/bin
echo $PATH
7)如果PATH不存在如下路径/usr/bin,可在~/.bash_profile中添加如下代码
export PATH="/usr/bin:$PATH"
保存并退出
source .bash_profile
8)上述准备工作完成后,进入dSYM和crash文件对应的文件夹目录,如
cd ~/Desktop/DebugLog
9)执行如下命令,即可正确解析crash文件
symbolicatecrash xxx.crash xxx.app.dSYM > test.txt
最后
以上就是体贴万宝路为你收集整理的ios crash 日志分析的全部内容,希望文章能够帮你解决ios crash 日志分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复