Xcode自带工具symbolicatecrash解析Crash文件
項(xiàng)目中遇到一臺(tái)手機(jī)運(yùn)行測試包閃退的現(xiàn)象,而且是一個(gè)設(shè)備閃退其他設(shè)備沒有再現(xiàn)的情況
可以看到Crash信息,但是指定的問題給出的是16進(jìn)制內(nèi)存地址,根本無法定位問題發(fā)生在哪個(gè)類的哪個(gè)函數(shù)中
所以需要解析這個(gè)Crash文件,好了,廢話就說這么多,以下是干貨~~~
?
文章講述如下5個(gè)問題:
一、如何獲取手機(jī)的Crash文件
二、使用symbolicatecrash解析Crash文件具備的條件
三、如何獲取以上三個(gè)文件
四、如何找到symbolicatecrash
五、如何使用symbolicatecrash
==============================我是分割線=============================================
?
一、如何獲取手機(jī)的Crash文件
1. 打開Xcode,連接上手機(jī)
2. 菜單中,Window->Devices,打開Devices窗口
3. 左側(cè)選中連接的手機(jī),右側(cè)即可看到Crash信息,View Device Logs
Log類似這樣的:
二、使用symbolicatecrash解析Crash文件具備的條件
1. xxx.crash后綴名的文件
2. xxx.app.dSYM后綴名的文件
3. xxx.app文件
注:xxx為項(xiàng)目名稱
三、如何獲取以上三個(gè)文件
1. crash文件在第一步中已經(jīng)說明,將內(nèi)容保存在以【項(xiàng)目名.crash】為文件名的文件即可
2.后兩個(gè)文件一起獲得,可以通過Xcode獲取,也可以通過終端輸入命令行獲得:
? 通過Xcode獲取:
? ①Xcode->Window->Organizer,打開Archive窗口,找到App,點(diǎn)擊顯示菜單顯示Show In Finder?
?
②打開Archive文件夾,找到Archive文件->顯示包內(nèi)容
? ?在dSYMs文件夾中找到.app.dSYM文件
? ?在Products->Applications文件夾中找到app文件
? ?然后將這三個(gè)文件放在一個(gè)文件夾下,以供后面使用
? 通過終端命令行找:
? ①打開終端,輸入cd ~先到根目錄
? ②然后輸入cd Library/Developer/Xcode/Archives/
? ③然后輸入open. 打開Archive文件夾,后面就和通過Xcode的步驟②是一樣的了
四、如何找到symbolicatecrash
?1. 終端中輸入如下命令行進(jìn)行查找:
find /Applications/Xcode.app -name symbolicatecrash -type f?2. 根據(jù)查找結(jié)果,帶有iPhone路徑的,即可找到?symbolicatecrash
?3.?symbolicatecrash所在的文件夾,復(fù)制symbolicatecrash文件到之前放那三個(gè)文件的文件夾中
cd 復(fù)制查找的路徑到此處 open .?
?
============以上所有工作逐步就緒,以下如何使用symbolicatecrash命令===========
?
五、如何使用symbolicatecrash
? 1. 必須保證app文件,.app.dSYM及.crash文件的uuid一致才可解析成功
? 2. 終端輸入命令進(jìn)入存放文件的文件夾,執(zhí)行如下命令
dwarfdump --uuid xxx.app/YouXiIOSClient dwarfdump --uuid xxx.app.dSYM?3. 通過以上命令查看uuid,然后對比.crash文件第一行的Incident Identifier,看他們是否一致
? ? (我的情況是前兩個(gè)文件一致,肯定的,但是和.crash文件不一致,我的做法是把.crash文件的改成和他倆一致)
?4. 執(zhí)行命令
./symbolicatecrash xxx.crash xxx.app.dSYM > xxx.log此時(shí)會(huì)出現(xiàn)報(bào)錯(cuò):
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.再執(zhí)行如下命令即可
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"// 再次執(zhí)行,即可完成crash文件解析 ./symbolicatecrash xxx.crash xxx.app.dSYM > xxx.log ?
?
?5. 此時(shí)打開xxx.log文件即可獲得如下結(jié)果,之前是16進(jìn)制地址的地方,現(xiàn)在全部具體化了,哪個(gè)類文件的多少行代碼,哪個(gè)方法一目了然
? ? ?然后就可以根據(jù)項(xiàng)目的情況解析推斷閃退發(fā)生的原因了^_^
?
=======================最后來一張對比照片,看的更清晰==============================
?
??
轉(zhuǎn)載于:https://www.cnblogs.com/china-fanny/p/7610487.html
總結(jié)
以上是生活随笔為你收集整理的Xcode自带工具symbolicatecrash解析Crash文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kafka和flume进行整合的日志采集
- 下一篇: tomcat报错: Error pars