Ответ 1
С новым обновлением от crashlytics вы теперь можете использовать:
[[Crashlytics sharedInstance] recordError:error];
И в Swift:
Crashlytics.sharedInstance().recordError(error)
Вы можете проверить документацию здесь.
Как я могу получить Crashlytics для получения журнала без моего приложения сбой? У меня есть следующий код:
if(!context.managedObjectContext save:&error) {
CLS_LOG(@"%@",error.description)
}
При возникновении ошибки я хочу, чтобы сервер Crashlytics получил ошибку, но приложение должно продолжить работу.
Мне не нужен журнал сразу. Я был бы рад получить журнал следующего перезапуска. Я просто не хочу запускать сбой в моем приложении, чтобы получить журнал.
Возможно ли это?
С новым обновлением от crashlytics вы теперь можете использовать:
[[Crashlytics sharedInstance] recordError:error];
И в Swift:
Crashlytics.sharedInstance().recordError(error)
Вы можете проверить документацию здесь.
Спрашивайте старый вопрос, но теперь вы можете использовать Answers
, который является частью костюма Fabric
(Crashlytics
также является частью Fabric
):
Я попробовал следующие строки, и это работает как шарм. В блоке 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
В соответствии с документами Crashlytics.
try {
myMethodThatThrows();
} catch (Exception e) {
Crashlytics.logException(e);
// handle your exception here!
}
Насколько я знаю, если вы не будете правильно защищать свой код, ваше приложение все равно потерпит крах. Crashlylytics, выполните эти сбои и покажите их вам в "читаемом" режиме в веб-приложении, которое они разработали. Если нет краха, крахлитики возьмут что угодно. Вы можете получить исключение в своем коде:
@try{
....
}
@catch(NSException ex){...}
в критических частях, но вы всегда должны это делать, если боитесь, что ваше приложение будет разбиваться или вы обнаружите потенциальную ошибку, которая может позволить вашему приложению иметь плохое поведение и действовать. Вы всегда можете заставить в своем исключении отправлять или отслеживать эту ошибку.
Надеюсь, что это поможет
Crashlytics - это служба отслеживания сбоев, если вам нужно отслеживать пользовательские сообщения, выберите другую службу аналитики.
Фокус в том, чтобы использовать следующее:
http://support.crashlytics.com/knowledgebase/articles/202805-logging-caught-exceptions
Просто используйте это:
Crashlytics.logException(new Exception("my custom log for crashLytics !!!"));
Я использую это, и я получаю мой нефатальный сбой примерно через 5 минут!