ios crash的原因與抓取crash日誌的方法

來源:互聯網
上載者:User

標籤:

首先我們經常會閃退的異常有哪些呢?crash的產生來源於兩種問題:違反iOS策略被幹掉,以及自身的代碼bug。

1.IOS策略

1.1 低記憶體閃退

前面提到大多數crash日誌都包含著執行線程的棧調用資訊,但是低記憶體閃退日誌除外,這裡就先看看低記憶體閃退日誌是什麼樣的。
我們使用Xcode 5和iOS 7的裝置類比一次低記憶體閃退,然後通過Organizer查看產生的crash日誌,可以發現Process和Type都為Unknown:

1.2Watchdog逾時
Apple的iOSDeveloper Library網站上,QA1693文檔中描述了Watchdog機制,包括生效情境和表現。如果我們的應用程式對一些特定的UI事件(比如啟動、掛起、恢複、結束)響應不及時,Watchdog會把我們的應用程式幹掉,並產生一份響應的crash報告。

1.3 使用者強制退出

一看到“使用者強制退出”,首先可能想到的雙擊Home鍵,然後關閉應用程式。不過這種情境是不會產生crash日誌的,因為雙擊Home鍵後,所有的應用程式都處於後台狀態,而iOS隨時都有可能關閉後台進程,所以這種情境沒有crash日誌。

另一種情境是使用者同時按住電源鍵和Home鍵,讓iPhone重啟。這種情境會產生日誌(僅驗證過一次),但並不針對特定應用程式。

這裡指的“使用者強制退出”情境,是稍微比較複雜點的操作:先按住電源鍵,直到出現“滑動關機”的介面時,再按住Home鍵,這時候當前應用程式會被終止掉,並且產生一份相應事件的crash日誌。

通常,使用者應該是遇到應用程式卡死,並且影響到了iOS響應,才會進行這樣的操作——不過感覺這操作好進階,所以這樣的crash日誌應該比較少見。

2. 代碼bug
此外,比較常見的崩潰基本都源於代碼bug,比如數組越界、插空、Null 參考、引用未定義方法、多執行緒安全性、訪問野指標、發送未實現的selector等。

 

 

再來談談擷取iOS裝置上崩潰日誌(Crash Log)的方法

第一個方法:XCode  的菜單Window->Organizer   選擇Devices  ->  選中的手機 -> 點擊手機名稱左邊的箭頭 會等到如

 

在右邊豎藍色矩形框中 Type裡面出現兩種類型:Unknown和Crash 這兩種類型分別是 記憶體不夠回收記憶體kill應用程式導致Crash和程式異常Crash的日誌。

      

第二種方法 開啟手機 - > 設定 -> 通用 - > 關於本機 - > 診斷與用量 - > 診斷與用量資料  這裡面就是所有應用的Crash日誌。(本人沒找到這個)

第三種方法 使用第三方軟體:itools

如果你平時不用iTunes,而是使用itools這類第三方的軟體對iPhone裝置進行管理,也是沒問題的。

 

開啟itools,在你的裝置下,找到“進階功能”,點擊“崩潰日誌”,然後將需要的日誌匯出到電腦裡面就可以了!

 

第四種方法 通過iTunes Connect(Manage Your Applications - View Details - Crash Reports)擷取使用者的crash日誌

大部分使用者可能都會使用iTunes軟體來管理iPhone或者iPad裝置,這時候同步的Crash日誌就會同步到電腦上,我們只需要在特定的路徑裡面尋找即可。

Mac OS X:~/Library/Logs/CrashReporter/MobileDevice

Windows XP:C:\Documents and Settings\Application Data\Applecomputer\Logs\CrashReporter

Windows 7/Vista: C:\Users\電腦登入名稱\AppData\Roaming\AppleComputer\Logs\CrashReporter\MobileDevice

 

ios crash的原因與抓取crash日誌的方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.