北京時間9月13日凌晨一點,蘋果一年一度的發布會如期而至。新機型的發布又會讓適配相關的同學忙上一陣子啦,並且iOS Crash的問題始終伴隨著移動開發者。本文將從三個階段,由淺入深的介紹如何看懂並分析一篇crash報告,一起身臨其境去讀懂它吧。
當app發生crash時會產生crash report,這對我們定位crash的原因非常有幫助。該篇重點介紹了如何符號化、看懂並解析一篇crash Report。
當app發生crash時,系統會生成crash report並存儲在設備上。crash report會描述app在何種情況之下被系統終止運行,一般情況下描述會包括完整的線程調用堆棧,這對app的調試(和問題的定位)是非常有幫助的。所以你應當仔細研讀這些crash report,去了解你的app究竟發生的是哪種crash,並嘗試修復它們。
Low Memory Report與其它crash report不同,它沒有堆棧信息。當由於低內存而發生crash時,你必須反思你的內存使用模式和你針對低內存警告的應對方法。本文會提供給你幾個內存管理的參考實現,供你參考。
討論了如何查看那些crash report,這些report既包含通過TestFlight下載的測試用戶處獲得,又包含通過App Store下載的正式用戶處獲得。
符號化指的是一種手段,這種手段指的是把堆棧信息(二進位信息)解釋成源碼里的方法名或者函數名,也就是所謂符號。只有符號化成功後,crash report才能幫助開發者定位問題。