全文概要:
1.如何定位bug
2.如何設(shè)置全局?jǐn)帱c(diǎn)
3.如何導(dǎo)出dSYM文件
4.崩潰分析敬飒,解析dSYM文件
一.當(dāng)app在運(yùn)行中崩潰了布讹,我們?nèi)绾味ㄎ挥袉栴}的代碼
????有2種方式:
????????1.在Xcode中打全局?jǐn)帱c(diǎn),重新run一次,復(fù)現(xiàn)崩潰罐旗,Xcode會(huì)自動(dòng)跳轉(zhuǎn)到有問題的代碼那一行柿顶;
????????2.當(dāng)線上app運(yùn)行時(shí)通過dSYM文件定位bug祈秕。
二.如何設(shè)置全局?jǐn)帱c(diǎn)
? ? 1.在Xcode的左側(cè)導(dǎo)航區(qū),點(diǎn)擊左方又尖的圖標(biāo)->點(diǎn)擊左下角的加號(hào)->選擇Exception BreakPoint,如圖1.1:
????2.選擇后會(huì)彈出提示框如圖1.2雏胃,點(diǎn)擊空白處提示框就會(huì)消失请毛,這樣就設(shè)置好了全局?jǐn)帱c(diǎn),如果有其它斷點(diǎn)需求瞭亮,可以自行點(diǎn)擊選項(xiàng)進(jìn)行設(shè)置方仿。?
三.每 Archive 一次,都會(huì)生成 dSYM 文件统翩,如何導(dǎo)出 dSYM 文件
? ? 1.找到Xcode工具欄->Window->Organizer->目標(biāo)項(xiàng)目->右鍵 Show in Finder -> 顯示包內(nèi)容-> dSYMs 中的 xx.app.dSYM 就是我們要找的 dSYM 文件仙蚜,如圖2.1:
四.崩潰分析
? ?1.需要三個(gè)文件:崩潰時(shí)產(chǎn)生的Crash文件(本文將它命名為 crash )、打包時(shí)產(chǎn)生的 dSYM 文件唆缴、symbolicatecrash(Xcode自帶的崩潰分析工具)鳍征,建一個(gè)文件夾把上述3個(gè)文件放到這個(gè)文件夾中,文件夾的名字可以任意命名面徽,我在這里命名為 Crash艳丛;
? ? 注:命令行查找?symbolicatecrash 路徑的命令:find /Applications/Xcode.app -name symbolicatecrash -type f
? ? 2.用命令行解析文件:
? ? ? ? 2.1. 先切換到 Crash 文件目錄, 輸入cd 趟紊,然后將 Crash 文件拖入命令行氮双,再按回車鍵;
? ? ? ? 2.2.設(shè)置環(huán)境變量:exportDEVELOPER_DIR=/Applications/XCode.app/Contents/Developer 或?export DEVELOPER_DIR=$(xcode-select --print-path)霎匈,兩句的作用是一樣的戴差,哪一句都可以。這一句命令是非必須的铛嘱,可以跳過這一步直接執(zhí)行2.3暖释,當(dāng)2.3執(zhí)行不成功時(shí)再執(zhí)行這一步。也可以先執(zhí)行這一步墨吓,更保險(xiǎn)一些球匕,如圖3.1:
? ? ? ? 2.3使用命令解析Crash文件:
? ??????????symbolicatecrash 路徑 + crash 路徑 + dSYM 路徑 + ">" 解析后生成的文件名。
? ? ? ? ? ? 注:在命令行中寫的時(shí)候不需要 + 和 ""帖烘,解析后生成的文件名隨便取亮曹,本文取名"symbol.txt"
? ? ? ? ? ? 例:./symbolicatecrash ./crash ./Demo.app.dSYM > symbol.txt, 如圖3.2
此時(shí)在看Crash文件中就會(huì)發(fā)現(xiàn)多處一個(gè)?symbol.txt 文件,這個(gè)文件就是我們所需要的解析過的崩潰信息文件秘症。