轉一篇別人寫的崩潰調試 iOS崩潰調試 http://www.cocoachina.com/ios/20160115/15009.htmlhtml
1、原生代碼處理ios
正常代碼使用中的幾種崩潰處理:git
1.NSException收集崩潰信息github
// 將系統提供的獲取崩潰信息函數寫在這個方法中,以保證在程序開始運行就具備獲取崩潰信息的功能 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 將下面C函數的函數地址當作參數 NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler); return YES; } // 設置一個C函數,用來接收崩潰信息 void UncaughtExceptionHandler(NSException *exception){ // 能夠經過exception對象獲取一些崩潰信息,咱們就是經過這些崩潰信息來進行解析的,例以下面的symbols數組就是咱們的崩潰堆棧。 NSArray *symbols = [exception callStackSymbols]; NSString *reason = [exception reason]; NSString *name = [exception name]; } //代碼調用第2種方法:獲取崩潰統計的函數指針 NSUncaughtExceptionHandler *handler = NSGetUncaughtExceptionHandler();
2.dSYM數組
每次Archive一個包以後,都會隨之生成一個dSYM文件。每次發佈一個版本,咱們都須要備份這個文件,以方便之後的調試。app
須要使用Xcode自帶的symbolicatecrash工具來將.Crash和.dSYM文件進行符號化函數
三、經過Xcode查看設備崩潰信息工具
選擇window-> devices -> 選擇本身的手機 -> view device logs 就能夠查看咱們的崩潰信息了。spa
四、蘋果自帶崩潰統計工具指針
蘋果在Xcode中爲咱們集成了崩潰統計功能,在Window->Organizer->Crashes中能夠看到
須要用戶在iPhone中進行設置,設置->隱私->診斷與用量->診斷與用量數據(iOS8如下在通用中設置),選擇自動發送,並與開發者共享便可
2、第三方開源代碼分析統計
1.bugHD
來源http://bughd.com/doc/ios-customize
2.bugtags
來源http://help.bugtags.com/hc/kb/article/124400/
http://help.bugtags.com/hc/kb/article/68482/
3.KSCrash
https://github.com/kstenerud/KSCrash4.友盟
總結:
第三方統計工具並非用的越多越好,使用多個崩潰收集第三方會致使NSSetUncaughtExceptionHandler()函數指針的惡意覆蓋,致使有些第三方不能收到崩潰信息。
第三方統計工具並非用的越多越好,使用多個崩潰收集第三方會致使NSSetUncaughtExceptionHandler()函數指針的惡意覆蓋,致使有些第三方不能收到崩潰信息。