1. 程式人生 > >如何看Crash 文件

如何看Crash 文件

通過 container led 分享 版本 這不 bsp del 舉例

如何查看崩潰日誌

好了,獲得是人類可讀語言的崩潰日誌後,或者是從別人手機到處崩潰日誌後,下一步就是查看了。下面就正對一個程序猿該如何看稍微說說。

崩潰日誌頭

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Incident Identifier: 635A20F0-BC79-4724-AE45-D49097085250 CrashReporter Key: 21a348fcc69b56e9f74e9b0078c8d7bbc0ace04a Hardware Model: xxx Process: crashDemo [3131]
Path: /private/var/mobile/Containers/Bundle/Application/B2B0DDAE-2E1B-422E-AA4D-99C2578C99E6/crashDemo.app/crashDemo Identifier: com.demo.crashDemo Version: 2443 (1.4.2) Code Type: ARM-64 (Native) Parent Process: launchd [1] Date/Time: 2015-11-24 17:57:00.00 -0800
Launch Time: 2015-11-24 17:56:44.44 -0800 OS Version: iOS 9.1 (13B143) Report Version: 105 Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Triggered by Thread: 0

首先正對這個崩潰日誌頭,程序猿級別的童鞋只要關註幾點就好了。 Process:是在Info.plist

文件中key為CFBundleExecutable所填寫的名字,首先先確認這個,別到時候發現尼瑪這不是自己的崩潰日誌 Version:這個則是要關註的第二個點,就是這個崩潰日誌產生的版本,因為對於中大型公司來說的話,一般有可能多個版本並行的情況,針對崩潰日誌一定要看清楚是哪個版本,這個是由Info.plist文件中的CFBundleVersionCFBundleVersionString組成 OS Version:這個字段則是說我這個崩潰日誌是在什麽系統上面產生的,iOS 8還是iOS 9?這個總得知道吧,因為有可能你用到了被停用的接口啊,或者是太新的接口在老版本上不兼容啊等問題 ‘Exception Type’:說明崩潰產生的原因,具體的詳情可以查看蘋果官網
‘Triggered by Thread’:這個說明在哪個線程上崩潰的,這個一定得看要不然下面一堆堆棧信息完全就不知道看哪個了

崩潰日誌的堆棧信息

然後就是找到對應的崩潰堆棧信息來說的話,去找對應的崩潰函數,還是用上方的第一張圖來舉例:

技術分享

其實如果是自己寫的代碼一眼就能看出來問題所在了,因為能從這個堆棧中找到問題所在。一般這個調用都是從上往下看,最上面的出現你熟悉的代碼一般就是問題所在了,如果上圖中[JsonUtil dataRequest:Key:Delegate:Info:] (JsonUtil.m:166)一眼就能看出來這個是我的代碼,然後我去分析這行代碼周圍的代碼很快就能找到問題所在了。至於其他的就沒什麽好看了。

結束語

其實除了從蘋果審核人員那裏獲得崩潰日誌外,我們還可能通過從測試人員的手機裏拷貝出來。一般通過iTunes的同步功能就能講手機中的崩潰日誌拷貝到電腦裏面來查看(如下圖)。如果是Mac的話目錄應該是在/Users/chipsea/Library/Logs/CrashReporter/MobileDevice目錄下能看到同步的到的崩潰日誌,然後根據日誌進行修改Bug吧。最後去屎吧八阿哥!

技術分享

如何看Crash 文件