全文概要:
1.如何定位bug
2.如何設(shè)置全局斷點
3.如何導出dSYM文件
4.崩潰分析,解析dSYM文件
一.當app在運行中崩潰了,我們?nèi)绾味ㄎ挥袉栴}的代碼
????有2種方式:
????????1.在Xcode中打全局斷點,重新run一次,復現(xiàn)崩潰,Xcode會自動跳轉(zhuǎn)到有問題的代碼那一行;
????????2.當線上app運行時通過dSYM文件定位bug。
二.如何設(shè)置全局斷點
? ? 1.在Xcode的左側(cè)導航區(qū),點擊左方又尖的圖標->點擊左下角的加號->選擇Exception BreakPoint,如圖1.1:

????2.選擇后會彈出提示框如圖1.2,點擊空白處提示框就會消失,這樣就設(shè)置好了全局斷點,如果有其它斷點需求,可以自行點擊選項進行設(shè)置。?

三.每 Archive 一次,都會生成 dSYM 文件,如何導出 dSYM 文件
? ? 1.找到Xcode工具欄->Window->Organizer->目標項目->右鍵 Show in Finder -> 顯示包內(nèi)容-> dSYMs 中的 xx.app.dSYM 就是我們要找的 dSYM 文件,如圖2.1:

四.崩潰分析
? ?1.需要三個文件:崩潰時產(chǎn)生的Crash文件(本文將它命名為 crash )、打包時產(chǎn)生的 dSYM 文件、symbolicatecrash(Xcode自帶的崩潰分析工具),建一個文件夾把上述3個文件放到這個文件夾中,文件夾的名字可以任意命名,我在這里命名為 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,當2.3執(zhí)行不成功時再執(zhí)行這一步。也可以先執(zhí)行這一步,更保險一些,如圖3.1:

? ? ? ? 2.3使用命令解析Crash文件:
? ??????????symbolicatecrash 路徑 + crash 路徑 + dSYM 路徑 + ">" 解析后生成的文件名。
? ? ? ? ? ? 注:在命令行中寫的時候不需要 + 和 "",解析后生成的文件名隨便取,本文取名"symbol.txt"
? ? ? ? ? ? 例:./symbolicatecrash ./crash ./Demo.app.dSYM > symbol.txt, 如圖3.2

此時在看Crash文件中就會發(fā)現(xiàn)多處一個?symbol.txt 文件,這個文件就是我們所需要的解析過的崩潰信息文件。