1. 程式人生 > >捕獲應用程式崩潰日誌

捕獲應用程式崩潰日誌

  作為一名iOS移動應用開發者,為了確保你的應用程式正確無誤,在將應用程式提交到應用商店之前,你必定會進行大量的測試工作;而且在你測試的過程中應用程式執行的很好,但是在應用商店上線之後,還是有使用者抱怨應用程式會“閃退”!現在作為應用程式的開發人員你肯定會準備開啟程式碼準備修復“閃退”的問題,但是就在這個時候你會發現,到底那段程式碼?那個地方的問題呢……;這個時候iOS崩潰日誌就派上用場了,那麼現在我們就來研究怎麼獲取應用崩潰的日誌,以及從日誌追蹤到程式碼。

(一)什麼是崩潰日誌,從哪裡能得到它:
  iOS裝置上的應用閃退時,作業系統會生成一個崩潰報告,也叫崩潰日誌,儲存在裝置上,崩潰日誌上有很多有用的資訊,包括應用是什麼情況下閃退的。通常,上面有每個正在執行執行緒的完整堆疊跟蹤資訊,所以你能從中瞭解到閃退發生時各執行緒都在做什麼,並分辨出閃退發生在哪個執行緒上。

(二)獲取崩潰日誌的幾種方法:
  1、當用戶抱怨閃退時,你可以要求他讓裝置與iTunes同步,裝置與電腦上的iTunes Store同步後,會將崩潰日誌儲存在電腦上(路徑:Mac OS X:~/Library/Logs/CrashReporter/MobileDevice/)到上述位置把崩潰日誌下載下來,然後通過電子郵件傳送給你;用這個方法獲取崩潰日誌時,你必需儘量獲取使用者裝置生成的所有崩潰日誌。因為崩潰日誌越多,就越容易診斷問題所在。
  2、如果你裝了Xcode,也能很容易通過Xcode從你的裝置上獲得崩潰日誌;將iOS裝置連線到電腦上,然後開啟Xcode;從選單欄上選擇 Window選單, 然後選擇 Organizer (快捷方式是 Shift-CMD-2)在Organizer 視窗上, 選中 Devices 標籤欄,在左側的導航面板上,選中Device Logs;LIBRARY下面的Device Logs是你所有裝置(曾經連線到Xcode的)的日誌;每個裝置下面的Device Logs是對應裝置的日誌。
  3、應用提交到App Store後,你也能從 iTunes Connect 獲取到使用者的崩潰日誌,登入到 iTunes Connect 上,選擇 Manage Your Applications, 點選相應的應用,點選應用圖示下面的View Details按鈕, 然後點選右欄Links部分的 Crash Reports;如果沒有崩潰日誌,試試點選Refresh按鈕重新整理一下。如果你的應用使用者量還不多,或者剛上架不久,iTunes Connect賬號上也可能還沒有任何崩潰日誌;如果有的話你就會看到不同iOS版本使用者下的崩潰資訊。
  4、使用工具來獲取應用程式崩潰日誌,現在小編來推薦一款好用的工具(名稱:Bugly,網址:

http://bugly.qq.com/)官網上由詳細的講解,還附有Demo,小編就不一一解說了;
  5、iphone崩潰日誌分析工具symbolicatecrash;Symbolicatecrash是Xcode自帶的一個分析工具,可以通過機器上的崩潰日誌和應用的.dSYM檔案定位發生崩潰的位置,把crash日誌中的地址替換成程式碼相應位置(詳情見:http://www.cnblogs.com/ydhliphonedev/archive/2012/12/07/2806866.html);

(三)什麼情況下會產生崩潰日誌:
  1.使用者違反作業系統規則:
    違反iOS規則包括在啟動、恢復、掛起、退出時watchdog超時、使用者強制退出和低記憶體終止。
  2.應用中有Bug:
    這時候大家會想,有Bug的應用程式還會上傳應用商店成功嗎?小編的理解是應用程式中一些潛在的Bug也許是iOS系統更新之後產生的Bug,就想iOS8 -> iOS9之後蘋果默默的就把http改成了https