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