NSSetUncaughtExceptionHandler nicht fangen alle Fehler auf dem iPhone

Ich bin mit GTMStackTrace von http://code.google.com/p/google-toolbox-for-mac.

Brauche ich eine Möglichkeit zum testen der end-Benutzer zu senden Sie mir Fehler, wenn die app Abstürzen. Ich weiß, wie das senden von Daten an meine website, aber das problem ist, wie fangen aller nicht behandelten Fehler.

Habe ich diesen code:

void exceptionHandler(NSException *exception) {
    NSLog(@"%@", [exception reason]);
    NSLog(@"%@", [exception userInfo]);
    NSLog(@"%@", GTMStackTraceFromException(exception));

    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:NSLocalizedString(@"Error unexpected",@"Info: Can't save record")
                          message:GTMStackTraceFromException(exception) delegate:nil 
                          cancelButtonTitle:NSLocalizedString(@"Ok",@"Button: Ok") otherButtonTitles:nil];
    [alert show];
    [alert release];    
}

int main(int argc, char *argv[]) {
    //For crash report..
    NSSetUncaughtExceptionHandler(&exceptionHandler);
    //Normal code...
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

Jedoch, die Sache nicht erwischt zu viele Fehler, wie eine schlechte Version, ein BAD ACCES usw, und die App verschwinden. Ich habe 2 Fragen, bei denen nicht klar ist, warum das passiert ist und die end-Benutzer haben keine Ahnung, was zu sagen.

(Zum Beispiel release zweimal die gleiche var nicht fangen)

So, wie bekomme ich ALLE diese lästigen Fehler, so dass die end-Benutzer einfach, senden Sie mir einen crash-report?

  • Außerdem, kann man die volle stack-trace mit Fehler-Zeilen?
  • Sind Sie tatsächlich in der Lage zu bekommen, dass die uialertview-Objekt zu zeigen, bis? Ich bin nicht in der Lage. Irgendwelche Ratschläge?
InformationsquelleAutor mamcx | 2009-07-14
Schreibe einen Kommentar