Подтвердить что ты не робот

Отправить журнал Crashlytics без сбоя приложения

Как я могу получить Crashlytics для получения журнала без моего приложения сбой? У меня есть следующий код:

if(!context.managedObjectContext save:&error) {
    CLS_LOG(@"%@",error.description)
}

При возникновении ошибки я хочу, чтобы сервер Crashlytics получил ошибку, но приложение должно продолжить работу.

Мне не нужен журнал сразу. Я был бы рад получить журнал следующего перезапуска. Я просто не хочу запускать сбой в моем приложении, чтобы получить журнал.

Возможно ли это?

4b9b3361

Ответ 1

С новым обновлением от crashlytics вы теперь можете использовать:

[[Crashlytics sharedInstance] recordError:error];

И в Swift:

Crashlytics.sharedInstance().recordError(error)

Вы можете проверить документацию здесь.

Ответ 2

Спрашивайте старый вопрос, но теперь вы можете использовать Answers, который является частью костюма Fabric (Crashlytics также является частью Fabric):

введите описание изображения здесь

Fabric можно найти здесь. И дальнейшая документация здесь.

Ответ 3

Я попробовал следующие строки, и это работает как шарм. В блоке try-catch используйте следующие строки в блоке catch

@try {
// line of code here
}
@catch (NSException *exception) {
NSUncaughtExceptionHandler *handler = NSGetUncaughtExceptionHandler();
handler(exception);
}

как описано в http://support.crashlytics.com/knowledgebase/articles/222764-can-i-use-a-custom-exception-handler

[ОБНОВЛЕНИЕ]

Теперь в твист-скриптах мы можем использовать простую функцию [Crashlytics recordCustomExceptionName:reason:frameArray:] для отправки обработанных исключений

@try {
// line of code here
}
@catch (NSException *exception) {
    NSArray *stack = [exception callStackReturnAddresses];
    [[Crashlytics sharedInstance] recordCustomExceptionName: exception.name
                                                 reason: exception.reason
                                             frameArray: stack];
}

как объяснено в https://twittercommunity.com/t/crashlytics-ios-how-to-send-non-fatal-exceptions-without-app-crash/34592/32

Ответ 5

Насколько я знаю, если вы не будете правильно защищать свой код, ваше приложение все равно потерпит крах. Crashlylytics, выполните эти сбои и покажите их вам в "читаемом" режиме в веб-приложении, которое они разработали. Если нет краха, крахлитики возьмут что угодно. Вы можете получить исключение в своем коде:

@try{
....
}
@catch(NSException ex){...}

в критических частях, но вы всегда должны это делать, если боитесь, что ваше приложение будет разбиваться или вы обнаружите потенциальную ошибку, которая может позволить вашему приложению иметь плохое поведение и действовать. Вы всегда можете заставить в своем исключении отправлять или отслеживать эту ошибку.

Надеюсь, что это поможет

Ответ 6

Crashlytics - это служба отслеживания сбоев, если вам нужно отслеживать пользовательские сообщения, выберите другую службу аналитики.

Ответ 7

Фокус в том, чтобы использовать следующее:

http://support.crashlytics.com/knowledgebase/articles/202805-logging-caught-exceptions

Просто используйте это:

Crashlytics.logException(new Exception("my custom log for crashLytics !!!"));

Я использую это, и я получаю мой нефатальный сбой примерно через 5 минут!