iOS在APP中添加崩潰檢測并將崩潰信息存儲到本地,后期上傳

不難兩步直接上代碼

(1)加上監(jiān)聽異常的代碼

- (BOOL)application:(UIApplication *)application     didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
     NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);
     return YES;
 }

(2)程序崩潰或者發(fā)生異常時會走這個處理

void UncaughtExceptionHandler(NSException *exception) {
    NSArray *arr = [exception callStackSymbols];
    NSString *reason = [exception reason];
    NSString *name = [exception name];
//這里是異常報告
    NSString * error = [NSString stringWithFormat:@"%@%@%@++++",arr,reason,name];
    NSString * docsdir = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
    NSString *dataFilePath = [docsdir stringByAppendingPathComponent:@"3EClassCrash"];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL isDir = NO;
    BOOL existed = [fileManager fileExistsAtPath:dataFilePath isDirectory:&isDir];
    if (!(isDir && existed)) {
        [fileManager createDirectoryAtPath:dataFilePath withIntermediateDirectories:YES attributes:nil error:nil];
    }
//可以根據這個路徑去找到保存在本地的異常報告
    NSLog(@"%@",dataFilePath);
    NSString *path = [dataFilePath stringByAppendingPathComponent:@"3Ecrash.txt"];
    NSString * str= [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    BOOL writeSuccess;
    if (str.length > 0) {
        writeSuccess = [[NSString stringWithFormat:@"%@\n%@",str,error] writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
    }else{
        writeSuccess = [[NSString stringWithFormat:@"%@",error] writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
    }
    if (writeSuccess) {
        NSLog(@"寫入成功");
    }

}

(3)上傳的時候可以選擇在每次重啟進入APP界面的時候上傳

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容