不用第三方bug統(tǒng)計(jì)該如何騷操作

前言

每次線上都會(huì)有些崩潰記錄在友盟,但是這些崩潰日志并不好查找崩潰的原因,我就在想有沒(méi)有好一點(diǎn)的方法.

錯(cuò)誤的異想天開(kāi)的做法

當(dāng)時(shí)想著是是根據(jù)OC語(yǔ)言的消息轉(zhuǎn)發(fā)原理,將那三個(gè)消息轉(zhuǎn)發(fā)的方法利用運(yùn)行時(shí)進(jìn)行注入自己的代碼.簡(jiǎn)單的做法就是將NSObject的分類利用runtime進(jìn)行方法交換.

問(wèn)題所在

這個(gè)方法經(jīng)過(guò)試驗(yàn),比如測(cè)試越界等等確實(shí)能走到自己寫的方法里,但是正常的消息轉(zhuǎn)發(fā)也會(huì)被記錄,這并不是一件好事!

正確而簡(jiǎn)單的做法

查閱了些文章,發(fā)現(xiàn)iOS是提供了這樣的函數(shù)回調(diào)的,寫起來(lái)很簡(jiǎn)單,但是發(fā)現(xiàn)和第三方缺陷收集平臺(tái)收集的信息差不多.具體做法如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // Override point for customization after application launch.
        
        NSSetUncaughtExceptionHandler(&my_uncaught_exception_handler);
        return YES;
    }

    static void my_uncaught_exception_handler (NSException *exception) {
        //這里可以取到 NSException 信息
        NSLog(@"***********************************************");
        NSLog(@"%@",exception);
        NSLog(@"%@",exception.callStackReturnAddresses);
        NSLog(@"%@",exception.callStackSymbols);
        NSLog(@"***********************************************");
    }

AppDelegate里注冊(cè)自己的函數(shù),在這里你可以本機(jī)記錄崩潰,看自己的需求了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,117評(píng)論 25 708
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,881評(píng)論 18 139
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,767評(píng)論 0 9
  • 一 最近各大城市紛紛報(bào)道A市有許多女學(xué)生莫名失蹤,小至十六七歲的高中生,大至二十多歲的大學(xué)生,失蹤的凈是些正值青春...
    Vesper_Xiao閱讀 259評(píng)論 2 2