2009-07-10 2 views
9

Я работаю над приложением Cocoa с таргетингом на Leopard и выше, и я думаю о добавлении к нему репортера сбоев (я хотел бы думать, что мое приложение не будет разбиваться, но давайте настоящий здесь). У меня есть некоторые главным образом концептуальные вопросы, прежде чем я действительно начну.Crash Reporter для приложения Cocoa

1) Как это работает концептуально, зная, когда происходит сбой и воспитывает репортера? У меня есть демон, работающий в поисках сбоя, или я жду, пока приложение будет запущено в следующий раз, чтобы сообщить об этом?

2) Можно ли это сделать в какао? Или мне придется окунуться в Carbon или IOKit или что-то подобное?

3) Это даже хорошая идея? У Mac OS X уже есть встроенный репортер сбоев, но, как разработчик, я не вижу журналы сбоев. Я не думаю, что мое приложение будет рушиться часто, честно говоря, но я просто не хочу быть наивным, но такого типа.

Что вы думаете об этом?

+1

Кому-то нравится отвечать на этот пост, как на 2013 год? Все ответы довольно устарели, но вопрос по-прежнему более чем уместен ... –

ответ

4

У меня был большой успех с UKCrashReporter. Код несложный и легко модифицируется в соответствии с L & F вашего приложения.

PLCrashReporter выглядит интересным.

Я бы держался подальше от Smart Crash Reporter только потому, что многие пользователи (по праву) не ценят ваше приложение, вводящее код в неожиданные места, и это поражает меня как хрупкий (возможно, опасный для использования в выпущенном приложении) подход.

+0

Не могли бы вы изменить свой ответ, как на 2013 год? Я не удивлюсь, что ваш новый ответ может быть совершенно другим. –

1

Я видел несколько приложений, использующих Smart Crash Reporter или, возможно, их вариант. Когда ваше приложение выйдет из строя, оно вызовет обычное диалоговое окно аварийной ситуации Apple с дополнительной кнопкой, которая гласит: «Отправить и Apple и вы»

1

Я бы уклонился от Smart Crash Reporter по той единственной причине, что у него плохой вкус для многих пользователей, и это хороший способ получить плохую прессу для вашего приложения (заслуживает или нет) PLCrashReporter или UKCrashReporter http://zathras.de/angelweb/sourcecode.htm, они дадут некоторые идеи о том, что делать и как сделать это способами, которые не вводят в другие кодовое пространство.

2

Другие хорошо ответили на вопрос и указали на хороший код примера.

Его кодирование довольно просто. Стратегия обычно является:

  • уловов соответствующих сигналы
  • запуск отдельной аварии репортера приложение, которое живет в пачке вашего приложения
  • приложение аварии репортера затем находит последнюю запись в журнале аварии для вашего приложения и отправляет его (по почте, электронной почте и т. д.)
1

Другим вариантом является Google Breakpad. Он имеет оболочку оболочки Cocoa и совместим с сервером Mozilla Socorro. Он используется Firefox, а структура Cocoa используется в текущих бета-версиях Camino. Интеграция на стороне клиента довольно проста, но я никогда не смотрел, что нужно для запуска экземпляра сервера Socorro.

2

Я также прокатка мой: SFBCrashReporter

Существует небольшая post on my blog об этом.

+1

Я использовал это в своем приложении и был вполне доволен этим. Текущая версия предназначена для приложений с поддержкой GC, хотя, поэтому для ее использования в приложениях, отличных от GC, требуется небольшая настройка. Я тоже попробовал UKCrashReporter, но мне понравилось это лучше. – hasseg

0

Я использую ILCrashReporter, и он работает действительно красиво. Метод основан на электронной почте, поэтому он хорошо работает с Fogbugz.

+0

ILCrashReporter не работает на снежном барсе ... любая подсказка? – Devarshi

Смежные вопросы