很多時(shí)候模擬器debug無法復(fù)現(xiàn)真機(jī)上的crash
因此需要打包安裝到真機(jī)后,讀取本地crash log文件分析
1、獲取crash文件
<1>這里只介紹蘋果官方同步軟件iTunes的路徑,將打包后的ipa文件通過iTunes安裝到手機(jī),進(jìn)行crash復(fù)現(xiàn)操作,就會在以下路徑生成crash log文件(其它同步軟件也會有提供崩潰日志)
Mac OS X:~/Library/Logs/CrashReporter/MobileDevice
Windows XP:C:\Documents and Settings\Application Data\Apple computer\Logs\CrashReporter
Windows 7/Vista: C:\Users\計(jì)算機(jī)登錄名\AppData\Roaming\Apple Computer\Logs\CrashReporter\MobileDevice
<2>選擇你測試的手機(jī)文件夾,找到測試日期對應(yīng)crash文件
2、讀取文件,打開文件后會看到如下內(nèi)容
其實(shí)也是比較重要的內(nèi)容,這里只做一個(gè)簡述,讓我們對怎樣看crash log有個(gè)思路,因?yàn)閏rash有各種各樣的原因,例子里并不能涵蓋所有
<1>Exception Type:? EXC_CRASH (SIGABRT)
SIGABRT一般為無法找到對象
<2>Triggered by Thread:? 21
也就是在第21個(gè)線程出現(xiàn)了crash,接著就將線程定位到第21個(gè)
<3>
一般來說app name后面會對應(yīng)一些方法提示,也就是expect point,就可以按照方法名結(jié)合Exception Type去查一下該方法內(nèi)的問題
但是我這個(gè)沒有,于是定位到Thread 21 name:? Dispatch queue: com.tune.concurrentQueue這一行,說明是我在開啟tune相關(guān)線程時(shí)出現(xiàn)了cash,因此需要在crash發(fā)生頁面查找tune相關(guān)操作,然后進(jìn)行排查。
這樣就有了切入點(diǎn),而不是無頭蒼蠅一般到處找問題
基本的思路就是這樣了,希望能幫助到你,不對的地方還請指出