Bạn có thể gửi báo cáo sự cố khi người dùng khởi động ứng dụng sau sự cố.
Tải xuống crashManagetLib để đọc báo cáo sự cố.
Bạn có thể viết mã đọc sụp đổ của bạn trong didFinishLaunchingWithOptions
như: -
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self checkCrash];
}
// To check Crash and attach the crash file to Email
- (void) checkChrash
{
//code for the application crash report.
NSFileManager *file = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *dir = [paths objectAtIndex:0];
NSString *errorReportPath = [[dir stringByAppendingPathComponent:@"crash_report.plcrash"] retain];
//Call Crash Manager if apps is crashed
[[CrashManager sharedInstance] manageCrashes];
[[CrashManager sharedInstance] setCrashDelegate:self selector:@selector(notifyException:stackTrace:)];
//Mail Dialog is display if apps is crashed
NSString* errorReport = [CrashManager sharedInstance].errorReport;
if ([file fileExistsAtPath:errorReportPath])
{
if(nil != errorReport)
{
// log out from facebook.
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"TOKEN"];
NSString *crashResponce = [BKAPIClient sendCrashReportByMethod:aCrashReport WithErrorLog:errorReport];
NSLog(@"%@",crashResponce);
if ([crashResponce isEqualToString:@"True"])
{
NSLog(@"Crash Report has been sent !");
}
[file removeItemAtPath:errorReportPath error:nil];
}
}
[errorReportPath release];
}
// For stack trace of crash
- (void) notifyException:(NSException*) exception stackTrace:(NSArray*)stackTrace
{
// Oh no! We crashed!
// Time to output some stuff to the console.
// Note: Any EXC_BAD_ACCESS crashes (such as accessing a deallocated object) will
// cause the app to close stdout, so you won't see this trace in such a case.
NSLog(@"Exception:\n%@\n", exception);
NSLog(@"Full Trace:\n%@\n", [[StackTracer sharedInstance] printableTrace:stackTrace]);
NSArray* intelligentTrace = [[StackTracer sharedInstance] intelligentTrace:stackTrace];
NSLog(@"Condensed Intelligent Trace:\n%@", [[StackTracer sharedInstance] condensedPrintableTrace:intelligentTrace]);
}
Làm thế nào bạn sẽ nhận được báo cáo tai nạn mà không có sự sụp đổ !!! ; D – Maulik