Puede enviar su informe de fallos cuando el usuario inicie la aplicación después del bloqueo.
Descargue el crashManagetLib para leer el informe de fallos.
Puede escribir el código de lectura accidente en didFinishLaunchingWithOptions
como: -
- (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]);
}
¿Cómo se obtiene informe de bloqueo sin el choque !!! ; D – Maulik