Crashlytics Android 異常報(bào)告統(tǒng)計(jì)管理(詳解)
簡(jiǎn)介
Crashlytic 成立于2011年,是專門為移動(dòng)應(yīng)用開者發(fā)提供的保存和分析應(yīng)用崩潰信息的工具。Crashlytics的使用者包括:支付工具Paypal, 點(diǎn)評(píng)應(yīng)用Yelp, 照片分享應(yīng)用Path, 團(tuán)購應(yīng)用GroupOn等移動(dòng)應(yīng)用。
2013年1月,Crashlytics被Twitter收購,成為又一個(gè)成功的創(chuàng)業(yè)產(chǎn)品。被收購之后,由于沒有了創(chuàng)業(yè)公司的不穩(wěn)定因素,我們更有理由使用它來分析應(yīng)用崩潰信息。
使用Crashlytics的好處有:
1、Crashlytics不會(huì)漏掉任何應(yīng)用崩潰信息。拿我的應(yīng)用舉例來說,在iTunes Connect的后臺(tái)查看不到任何崩潰信息。但是用戶確實(shí)會(huì)通過微博或者客服電話反饋應(yīng)用崩潰的情況。而這些在Crashlytics中都可以統(tǒng)計(jì)到。如下截圖分別顯示了我的某應(yīng)用在蘋果iTunes Connect后臺(tái)和Crashlytics中的差別:
2、Crashlytics可以象Bug管理工具那樣,管理這些崩潰日志。例如:Crashlytics會(huì)根據(jù)每種類型的Crash的出現(xiàn)頻率以及影響的用戶量來自動(dòng)設(shè)置優(yōu)先級(jí)。對(duì)于每種類型的Crash,Crashlytics除了會(huì)像一般的工具提供Call Stack外,還會(huì)顯示更多相關(guān)的有助于診斷的信息例如設(shè)備是否越獄,當(dāng)時(shí)的內(nèi)存量,當(dāng)時(shí)的iOS版本等。對(duì)于修復(fù)掉的Crash日志,可以在Crashlytics的后臺(tái)將其關(guān)掉。下圖所示的是一個(gè)我的早期應(yīng)用的崩潰記錄,在我修復(fù)后,我將其更新為已修復(fù)狀態(tài)。
3、Crashlytics可以每天和每周將崩潰信息匯總發(fā)到你的郵箱,所有信息一目了然。
下面我就給大家介紹如何使用Crashlytics。
使用介紹申請(qǐng)帳號(hào)
Crashlytics的服務(wù)是免費(fèi)提供的,但是并不能直接注冊(cè)使用,需要先申請(qǐng),打開Crashlytic的官網(wǎng) ,輸入自己的郵箱申請(qǐng)使用。如下圖所示:
提交完郵箱之后,你的申請(qǐng)會(huì)放在Crashlytics的申請(qǐng)隊(duì)列中,網(wǎng)頁跳轉(zhuǎn)到如下界面。在這個(gè)界面的右側(cè),你可以提供更多有效信息來讓Crashlytics優(yōu)先處理你的申請(qǐng),建議大家都填上更多自己的信息。
如果順利,通常1-2天左右,你就會(huì)收到Crashlytics發(fā)來的申請(qǐng)通過郵件,如下圖所示,通過郵件鏈接跳轉(zhuǎn)到注冊(cè)界面,填寫密碼即可完成注冊(cè)。
設(shè)置工程
在使用Crashlytics前需要對(duì)原有的XCode工程進(jìn)行配置,在這一點(diǎn)上,Crashlytics做得比其它任何我見過的SDK提供商都體貼。因?yàn)镃rashlytics專門做了一個(gè)Mac端的App來幫助你進(jìn)行配置,所以,在配置前你先需要去這里下載該應(yīng)用。
應(yīng)用下載后,運(yùn)行該應(yīng)用并登錄帳號(hào)。然后選擇應(yīng)用中的”New App”按鈕,然后選擇自己要增加Crashlytics的工程,然后Crashlytics的應(yīng)用會(huì)提示你為工程增加一個(gè)Run Script,如果你不知道如何添加,這里有一個(gè)幫助的文檔。添加好之后的工程截圖如下所示
接著,Crashlytics的本地應(yīng)用會(huì)提示你將Crashlytics相關(guān)的framework拖到工程中。如下所示:
按照提示做完之后,就到了最后一步了,在AppDelegate
的didFinishLaunchingWithOptions
方法中加入如下代碼:
#import <Crashlytics/Crashlytics.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [Crashlytics startWithAPIKey:@"your identify code"]; }
之后,運(yùn)行一下程序,Crashlytics就會(huì)檢測(cè)到你設(shè)置成功。如果你感興趣,可以自己手工觸發(fā)一個(gè)崩潰記錄,看Crashlytics能否幫你收集到。使用如下代碼即可
[[Crashlytics sharedInstance] crash];
如果你想測(cè)試一個(gè)Exception導(dǎo)致的崩潰,可以使用如下代碼:
[NSObject doesNotRecognizeSelector]; [arrayWithOnlyTwoElements objectAtIndex:3];
應(yīng)用對(duì)外發(fā)布后,就可以在Crashlytics后臺(tái)查看和修改相關(guān)的記錄。另外,Crashlytics還支持將數(shù)據(jù)導(dǎo)入到其它項(xiàng)目管理工具(例如Redmine或Jira)如下所示,配置都非常簡(jiǎn)單。
實(shí)現(xiàn)原理和使用體會(huì)實(shí)現(xiàn)原理
在原理上,Crashlytics的通過以下2步完成崩潰日志的上傳和分析:
1、提供應(yīng)用SDK,你需要在應(yīng)用啟動(dòng)時(shí)調(diào)用其SDK來設(shè)置你的應(yīng)用。SDK會(huì)集成到你的應(yīng)用中,完成Crash信息的收集和上傳。
2、修改工程的編譯配置,加入一段代碼,在你每次工程編譯完成后,上傳該工程對(duì)應(yīng)的dSYM文件。研究過手工分析Crash日志的同學(xué)應(yīng)該知道,只有通過該文件,才能將Crash日志還原成可讀的Call Stack信息。
使用體會(huì)
為了更加方便開發(fā)者設(shè)置相應(yīng)的工程,Crashlytics提供了mac端的應(yīng)用程序,幫助你檢測(cè)相關(guān)工程是否正確設(shè)置并且提供相應(yīng)的幫助信息。后來我還發(fā)現(xiàn),該程序還會(huì)自動(dòng)幫你升級(jí)Crashlytics的SDK文件。雖然這一點(diǎn)很體貼,但是我個(gè)人覺得還是不太友好。因?yàn)楫吘剐薷腟DK會(huì)影響應(yīng)用編譯后的內(nèi)部邏輯,在沒有任何通知的情況下升級(jí),我都無法確定Crashlytics有沒有干壞事。不過國外的服務(wù),特別是象Twitter這種相對(duì)較大知名度公司提供的服務(wù)要有節(jié)操得多,所以在這一點(diǎn)上我還是比較放心的。
使用Crashlytics可以讓你擺脫管理應(yīng)用崩潰記錄的煩惱。并且?guī)椭阏页鰬?yīng)用的一些重大隱藏性Bug。例如我之前寫的一個(gè)應(yīng)用就過一個(gè)緩存過期的問題,只有當(dāng)緩存過期時(shí)才會(huì)觸發(fā)這個(gè)Bug,這樣的問題在測(cè)試人員那邊很難觸發(fā),因?yàn)樗麄儾豢赡芰私饽愕膽?yīng)用內(nèi)部實(shí)現(xiàn)細(xì)節(jié)。通過Crashlytics,使我清楚了解到應(yīng)用Crash的數(shù)量和位置,結(jié)合自己的開發(fā)經(jīng)驗(yàn),就很容易找到問題所在了。
值得一提的是,Crashlytics本身的官方文檔也非常健全,如果你在使用中遇到任何問題,也可以上去查看詳細(xì)的文檔。
愿Crashlytics能讓大家的應(yīng)用都更加健壯~
以上這篇Crashlytics Android 異常報(bào)告統(tǒng)計(jì)管理(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Android 應(yīng)用Crash 后自動(dòng)重啟的方法小結(jié)
- Android實(shí)現(xiàn)自定義Crash handler記錄崩潰信息實(shí)例代碼
- Android CrashHandler編寫自己的異常捕獲的方法
- Android使用CrashHandler來獲取應(yīng)用的crash信息的方法
- 完美解決Android Studio集成crashlytics后無法編譯的問題
- Android 中Crash時(shí)如何獲取異常信息詳解及實(shí)例
- 基于Android應(yīng)用中如何反饋Crash報(bào)告的詳解
- Android app會(huì)crash的原因及解決方法
相關(guān)文章
Android 仿摩拜單車共享單車進(jìn)度條實(shí)現(xiàn)StepView效果
這篇文章主要介紹了android 仿摩拜單車共享單車進(jìn)度條實(shí)現(xiàn)StepView效果的實(shí)例,通過定義五個(gè)狀態(tài),分別為:為完成、正在進(jìn)行、已完成、終點(diǎn)完成、終點(diǎn)未完成。具體實(shí)現(xiàn)代碼,大家參考下2017-03-03Android viewpage實(shí)現(xiàn)禁止滑動(dòng)的功能
這篇文章主要介紹了Android viewpage實(shí)現(xiàn)禁止滑動(dòng)的功能的相關(guān)資料,這里附有實(shí)現(xiàn)的實(shí)例代碼,主要還是重新 ViewPage 這個(gè)類,需要的朋友可以參考下2016-11-11android實(shí)現(xiàn)人臉識(shí)別技術(shù)的示例代碼
本篇文章主要介紹了android人臉識(shí)別技術(shù)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03Kotlin協(xié)程開發(fā)之Flow的融合與Channel容量及溢出策略介紹
這篇文章主要介紹了Kotlin協(xié)程:Flow的融合、Channel容量、溢出策略,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-09-09Android中TextView顯示插入的圖片實(shí)現(xiàn)方法
這篇文章主要介紹了Android中TextView顯示插入的圖片實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了TextView三種顯示插入圖片的實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-08-08Android使用BottomNavigationBar實(shí)現(xiàn)導(dǎo)航欄功能
這篇文章主要介紹了Android使用BottomNavigationBar實(shí)現(xiàn)導(dǎo)航欄功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08Android OkHttp 結(jié)合php 多圖片上傳實(shí)例
本篇文章主要介紹了Android OkHttp 結(jié)合php 多圖片上傳實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05