2009-07-10 26 views
9

Pracuję nad aplikacją Cocoa skierowaną do systemu Leopard i wyżej. Zastanawiam się nad dodaniem do niego narzędzia do zgłaszania błędów (chciałbym mieć nadzieję, że moja aplikacja się nie zawiedzie, ale zróbmy prawdziwe tutaj). Mam kilka pytań, głównie koncepcyjnych, zanim naprawdę zacznę.Aplikacja Crash Reporter dla aplikacji Cocoa

1) Jak to działa koncepcyjnie, wiedząc, kiedy następuje awaria i wywołanie reportera? Czy mam demona działającego w poszukiwaniu awarii? Czy mogę poczekać, aż moja aplikacja zostanie uruchomiona następnym razem, aby zgłosić problem?

2) Czy można to zrobić w kakao? Czy musiałbym zanurzyć się w węglu lub w IOKit lub w coś takiego?

3) Czy to nawet dobry pomysł? Mac OS X ma już wbudowany program do zgłaszania awarii, ale jako programista nie widzę dzienników awarii. Nie sądzę, że moja aplikacja często się zawiesza, ale ja po prostu nie chcę być naiwna, ale tego typu rzeczy.

Jakie są Twoje przemyślenia i opinie na ten temat?

+1

Czy ktoś ma ochotę odpowiedzieć na to stanowisko jak na rok 2013? Wszystkie odpowiedzi są dość nieaktualne, ale pytanie jest nadal bardziej niż istotne ... –

Odpowiedz

4

Miałem dużo sukcesów z UKCrashReporter. Kod jest prosty i łatwy do modyfikacji, aby pasował do L & F swojej aplikacji.

PLCrashReporter wygląda jednak interesująco.

Trzymałbym się z daleka od Smart Crash Reporter tylko dlatego, że wielu użytkowników (zgodnie z prawem) nie docenia aplikacji kodującej wstrzyknięcia w nieoczekiwane miejsca i wydaje mi się, że jest to delikatna (być może niebezpieczna w użyciu aplikacja).

+0

Czy mógłbyś zaktualizować swoją odpowiedź tak jak w roku 2013? Nie zdziwiłbym się, że twoja nowa odpowiedź może być zupełnie inna. –

1

Widziałem kilka aplikacji używających Smart Crash Reporter lub może jakiś ich wariant. Gdy twoja aplikacja ulegnie awarii, pojawi się zwykłe okno dialogowe awarii Apple z dodatkowym przyciskiem, który mówi: "Wyślij do Apple i Ty".

1

Unikałbym Smart Crash Reportera z jednego powodu, że ma zły gust dla wielu użytkowników i jest dobrym sposobem na złapanie złej prasy dla twojej aplikacji (zasłużonej lub nie) PLCrashReporter lub UKCrashReporter http://zathras.de/angelweb/sourcecode.htm dadzą ci kilka pomysłów na temat tego, co zrobić i jak to zrobić w sposób, który nie wstrzykuje się w inne przestrzeń kodu.

2

Inni odpowiedzieli dobrze na pytanie i wskazali na przykładowy kod.

Samo kodowanie jest dość proste. Strategia ta jest na ogół:

  • złapać odpowiednie sygnały
  • launch oddzielna aplikacja krach reporter, który żyje wewnątrz wiązki danej aplikacji
  • aplikacja krach reporter następnie stwierdza najnowszy wpis dziennika awarii dla aplikacji i wysyła go do przez dowolną metodę (POST, e-mail itp.)
1

Inną opcją jest Google Breakpad. Ma ramkę otaczającą kakao i jest kompatybilna z serwerem Mozilli Socorro. Używa go Firefox, a framework Cocoa jest używany w obecnych betach Camino. Integracja po stronie klienta jest dość łatwa, ale nigdy nie sprawdzałem, co jest potrzebne, aby uruchomić instancję serwera Socorro.

2

Ja również walcowane moje własne: SFBCrashReporter

Jest mała post on my blog o nim.

+1

Użyłem tego w mojej aplikacji i byłem z niego zadowolony. Obecna wersja jest przeznaczona dla aplikacji obsługujących GC, więc używanie jej w aplikacjach innych niż GC wymaga niewielkiej korekty. Próbowałem również UKCrashReporter, ale polubiłem to lepiej. – hasseg

0

Używam ILCrashReporter i działa naprawdę ładnie. Metoda jest oparta na poczcie e-mail, więc działa dobrze z Fogbugz.

+0

ILCrashReporter nie działa na snow leopard ... żadna wskazówka? – Devarshi

Powiązane problemy