簡介
Crashlytic 成立于2011年,是專門為移動應用開者發(fā)提供的保存和分析應用崩潰信息的工具。Crashlytics的使用者包括:支付工具Paypal, 點評應用Yelp, 照片分享應用Path, 團購應用GroupOn等移動應用。
2013年1月,Crashlytics被Twitter收購,成為又一個成功的創(chuàng)業(yè)產(chǎn)品。被收購之后,由于沒有了創(chuàng)業(yè)公司的不穩(wěn)定因素,我們更有理由使用它來分析應用崩潰信息。
使用Crashlytics的好處有:
1、Crashlytics不會漏掉任何應用崩潰信息。拿我的應用舉例來說,在iTunes Connect的后臺查看不到任何崩潰信息。但是用戶確實會通過微博或者客服電話反饋應用崩潰的情況。而這些在Crashlytics中都可以統(tǒng)計到。如下截圖分別顯示了我的某應用在蘋果iTunes Connect后臺和Crashlytics中的差別:

2、Crashlytics可以象Bug管理工具那樣,管理這些崩潰日志。例如:Crashlytics會根據(jù)每種類型的Crash的出現(xiàn)頻率以及影響的用戶量來自動設置優(yōu)先級。對于每種類型的Crash,Crashlytics除了會像一般的工具提供Call Stack外,還會顯示更多相關的有助于診斷的信息例如設備是否越獄,當時的內(nèi)存量,當時的iOS版本等。對于修復掉的Crash日志,可以在Crashlytics的后臺將其關掉。下圖所示的是一個我的早期應用的崩潰記錄,在我修復后,我將其更新為已修復狀態(tài)。

3、Crashlytics可以每天和每周將崩潰信息匯總發(fā)到你的郵箱,所有信息一目了然。
下面我就給大家介紹如何使用Crashlytics。
使用介紹申請帳號
Crashlytics的服務是免費提供的,但是并不能直接注冊使用,需要先申請,打開Crashlytic的官網(wǎng) ,輸入自己的郵箱申請使用。如下圖所示:

提交完郵箱之后,你的申請會放在Crashlytics的申請隊列中,網(wǎng)頁跳轉到如下界面。在這個界面的右側,你可以提供更多有效信息來讓Crashlytics優(yōu)先處理你的申請,建議大家都填上更多自己的信息。

如果順利,通常1-2天左右,你就會收到Crashlytics發(fā)來的申請通過郵件,如下圖所示,通過郵件鏈接跳轉到注冊界面,填寫密碼即可完成注冊。

設置工程
在使用Crashlytics前需要對原有的XCode工程進行配置,在這一點上,Crashlytics做得比其它任何我見過的SDK提供商都體貼。因為Crashlytics專門做了一個Mac端的App來幫助你進行配置,所以,在配置前你先需要去這里下載該應用。
應用下載后,運行該應用并登錄帳號。然后選擇應用中的”New App”按鈕,然后選擇自己要增加Crashlytics的工程,然后Crashlytics的應用會提示你為工程增加一個Run Script,如果你不知道如何添加,這里有一個幫助的文檔。添加好之后的工程截圖如下所示

接著,Crashlytics的本地應用會提示你將Crashlytics相關的framework拖到工程中。如下所示:

按照提示做完之后,就到了最后一步了,在AppDelegate的didFinishLaunchingWithOptions方法中加入如下代碼:
#import <Crashlytics/Crashlytics.h>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [Crashlytics startWithAPIKey:@"your identify code"];}之后,運行一下程序,Crashlytics就會檢測到你設置成功。如果你感興趣,可以自己手工觸發(fā)一個崩潰記錄,看Crashlytics能否幫你收集到。使用如下代碼即可
[[Crashlytics sharedInstance] crash];
如果你想測試一個Exception導致的崩潰,可以使用如下代碼:
[NSObject doesNotRecognizeSelector];[arrayWithOnlyTwoElements objectAtIndex:3];
應用對外發(fā)布后,就可以在Crashlytics后臺查看和修改相關的記錄。另外,Crashlytics還支持將數(shù)據(jù)導入到其它項目管理工具(例如Redmine或Jira)如下所示,配置都非常簡單。

實現(xiàn)原理和使用體會實現(xiàn)原理
在原理上,Crashlytics的通過以下2步完成崩潰日志的上傳和分析:
1、提供應用SDK,你需要在應用啟動時調(diào)用其SDK來設置你的應用。SDK會集成到你的應用中,完成Crash信息的收集和上傳。
2、修改工程的編譯配置,加入一段代碼,在你每次工程編譯完成后,上傳該工程對應的dSYM文件。研究過手工分析Crash日志的同學應該知道,只有通過該文件,才能將Crash日志還原成可讀的Call Stack信息。
使用體會
為了更加方便開發(fā)者設置相應的工程,Crashlytics提供了mac端的應用程序,幫助你檢測相關工程是否正確設置并且提供相應的幫助信息。后來我還發(fā)現(xiàn),該程序還會自動幫你升級Crashlytics的SDK文件。雖然這一點很體貼,但是我個人覺得還是不太友好。因為畢竟修改SDK會影響應用編譯后的內(nèi)部邏輯,在沒有任何通知的情況下升級,我都無法確定Crashlytics有沒有干壞事。不過國外的服務,特別是象Twitter這種相對較大知名度公司提供的服務要有節(jié)操得多,所以在這一點上我還是比較放心的。
使用Crashlytics可以讓你擺脫管理應用崩潰記錄的煩惱。并且?guī)椭阏页鰬玫囊恍┲卮箅[藏性Bug。例如我之前寫的一個應用就過一個緩存過期的問題,只有當緩存過期時才會觸發(fā)這個Bug,這樣的問題在測試人員那邊很難觸發(fā),因為他們不可能了解你的應用內(nèi)部實現(xiàn)細節(jié)。通過Crashlytics,使我清楚了解到應用Crash的數(shù)量和位置,結合自己的開發(fā)經(jīng)驗,就很容易找到問題所在了。
值得一提的是,Crashlytics本身的官方文檔也非常健全,如果你在使用中遇到任何問題,也可以上去查看詳細的文檔。
愿Crashlytics能讓大家的應用都更加健壯~
以上這篇Crashlytics Android 異常報告統(tǒng)計管理(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點
疑難解答
圖片精選