Używam GTMStackTrace z http://code.google.com/p/google-toolbox-for-mac.NSSetUncaughtExceptionHandler nie przechwytuje wszystkich błędów na iPhonie
Potrzebuję sposobu, aby przetestować użytkownika końcowego, aby wysłać mi błędy po awarii aplikacji. Wiem, jak przesłać dane do mojej witryny, ale problem polega na tym, jak złapać wszystkie błędy, które nie zostały obsłużone.
mam ten kod:
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;
}
Jednak sprawa nie złowionych dużo błędów, jak zły wydaniu, złe ACCES, etc, a App znikają. Mam 2 problemy, w których nie jest jasne, dlaczego zdarzyło się, a użytkownicy końcowi nie mają pojęcia, co powiedzieć.
(na przykład uwolnienie dwa razy ta sama zmienna jest nie złapać)
Więc jak mam wszystko, co brzydkie błędy tak prostego użytkownika końcowego wyślij mi raport o awarii?
Ponadto, jest możliwe, aby uzyskać pełny ślad stosu z liniami o błędach? – mamcx
Czy rzeczywiście możesz wyświetlić ten UIAlertView? Nie jestem w stanie. Jakakolwiek rada? – Mark