1)自己寫崩潰收集
demo 地址:GitHub - wg689/CrashDemo: 自己寫代碼捕獲異常信息
自己寫代碼捕獲異常信息,將捕獲到的異常信息在下次聯(lián)網(wǎng)的時候發(fā)給后
1)將UncaughtExceptionHandler1.h UncaughtExceptionHandler1.m 文件拖到項目中
2)AppDelegate.m 中
import "UncaughtExceptionHandler1.h"
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. //調(diào)用這個函數(shù)就可以收集崩潰信息 InstallUncaughtExceptionHandler();
return YES; }
3)ViewController.m中 [dict setObject:nil forKey:@"kong"];制造崩潰信息
(void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSMutableDictionary *dict = [NSMutableDictionary dictionary]; //這里打開就可以看到控制臺輸出異常信息 // [dict setObject:nil forKey:@"kong"]; }
4)異常信息輸出
2016-04-26 11:53:53.941 CrashDemo[1758:465788] 異常信息
*** setObjectForKey: object cannot be nil (key: kong)( "4 libc++abi.dylib 0x0000000197e72f44 + 16", "5 libc++abi.dylib 0x0000000197e72b10 __cxa_rethrow + 144", "6 libobjc.A.dylib 0x00000001987e4120 objc_exception_rethrow + 44", "7 CoreFoundation 0x0000000183b14d48 CFRunLoopRunSpecific + 552", "8 UIKit 0x00000001892321c8 + 460" )
2)借助第三方平臺 友盟
1) 先到友盟平臺申請appkey ,appkey 填到代碼中(如果集成了環(huán)信sdk 如下代碼環(huán)信sdk中就有 只需要在環(huán)信sdk中填上key即可),集體繼承方式參照友盟崩潰收集集成方法
-(void)setupUMeng{
//友盟
? ?NSString *bundleID = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"];
? if (1/*[bundleID isEqualToString:@"com.easemob.enterprise.demo.ui"]*/) {
? ? ?[MobClick startWithAppkey:@"554b577267e58e761d******"http://這是友盟的appkey
? ? ?reportPolicy:BATCH
? ? ?channelId:Nil];
? ?#if DEBUG
? ? ? ?[MobClick setLogEnabled:YES];
? ?#else
? ? ? ? ?[MobClick setLogEnabled:NO];
#endif
}
2)代碼集成成功了 ?在后臺看得到崩潰的信息,將崩潰的信息導出成.csv后綴的
3)下載終端解析csv文件的umcrashtool ? 下載鏈接 友盟-專業(yè)的移動開發(fā)者服務(wù)平臺,關(guān)于詳細的友盟崩潰解析也可以參考這個鏈接
4) 打開終端 將下載的umcrashtool 和csv 文件拖到終端,終端自動運行解析出csv文件中的崩潰信息在哪個.m 文件,在哪一行
效果如下圖