NSSetUncaughtExceptionHandler pas rattraper toutes les erreurs sur iPhone

Je suis en utilisant GTMStackTrace de http://code.google.com/p/google-toolbox-for-mac.

J'ai besoin d'un moyen de test de l'utilisateur final à m'envoyer des erreurs lors de l'application crash. Je sais comment envoyer des données vers mon site, mais le problème est de savoir comment attraper tous les non-traitées erreurs.

J'ai ce 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;
}

Toutefois, la chose n'a pas pris beaucoup d'erreurs, comme un mauvais dégagement, un MAUVAIS ACCÈS, etc, et l'Application de disparaître. J'ai 2 questions où n'est pas clair pourquoi les parages et les utilisateurs finaux n'ont pas la moindre idée de quoi dire.

(Pour, par exemple, deux fois le même var est pas l'attraper)

Alors, comment j'obtiens TOUS ce fichus erreurs, de sorte que l'utilisateur final simple de m'envoyer un rapport d'erreur?

Aussi, Est possible d'obtenir tous les trace de la pile avec l'erreur?
Êtes-vous réellement en mesure d'obtenir que UIAlertView à montrer? J'en suis incapable. Tous les conseils?

OriginalL'auteur mamcx | 2009-07-14