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

Crashlytics iOS - исключение журнала

Я нашел способ зарегистрировать пользовательские пойманные исключения в SDK Crashlytics Android, но я не могу найти ничего подобного для SDK iOS. Есть ли способ зарегистрировать пойманное исключение с Crashlytics на iOS?

См. объяснение Android: http://support.crashlytics.com/knowledgebase/articles/202805-logging-caught-exceptions

4b9b3361

Ответ 1

Майк из Crashlytics и Fabric здесь.

Теперь вы можете записывать зарегистрированные NSErrors в приложениях iOS, tvOS или OS X. Вы хотите использовать:

[CrashlyticsKit recordError:error];

или

Crashlytics.sharedInstance().recordError(error)

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

См. Документация

Ответ 2

Это функция, которую я тоже жду, и лично попросил у них (я уверен, что у других тоже есть). Они сказали, что работают над этим/рассматривают его, но пока ничего.

изменить

Эта функция теперь находится в Crashlytics! Вы можете зарегистрировать NSErrors:)

Ответ 3

Невозможно зарегистрировать пойманное исключение в iOS, используя Crashlytics SDK. CLS_LOG может использоваться для регистрации пользовательских сообщений, но эти сообщения журнала отправляются в Crashlytics только со следующими данными об аварии. Если нет сбоя, эти сообщения журнала никогда не приземлятся на панели мониторинга Crashlytics. Я получил официальное подтверждение от команды поддержки Crashlytics относительно того же. Регистрация журналов исключений в iOS есть в их дорожной карте.

Ответ 4

Наконец, Crashlytics добавила желаемую функцию 3.5.0!

[CrashlyticsKit recordError:error];

или

Crashlytics.sharedInstance().recordError(error)

Ссылка

/**
 *
 * This allows you to record a non-fatal event, described by an NSError object. These events will be grouped and
 * displayed similarly to crashes. Keep in mind that this method can be expensive. Also, the total number of
 * NSErrors that can be recorded during your app life-cycle is limited by a fixed-size circular buffer. If the
 * buffer is overrun, the oldest data is dropped. Errors are relayed to Crashlytics on a subsequent launch
 * of your application.
 *
 * You can also use the -recordError:withAdditionalUserInfo: to include additional context not represented
 * by the NSError instance itself.
 *
 **/
- (void)recordError:(NSError *)error;
- (void)recordError:(NSError *)error withAdditionalUserInfo:(nullable CLS_GENERIC_NSDICTIONARY(NSString *, id) *)userInfo;

https://docs.fabric.io/ios/changelog.html#january-7-2016


История

На самом деле это не работает, как я и ожидал: сообщение сохраняется в Crashlytics, но только после перезапуска приложения, и оно будет сохранять только последнее сообщение.

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


Вы можете использовать это, чтобы регистрировать любое исключение

[[Crashlytics sharedInstance] recordCustomExceptionName:@"HandledException" reason:@"Some reason" frameArray:@[]];

В Crashlytics вы увидите его в отчете о сбое, но с типом NON-FATALS.

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

Это доступно в версии 3.0.7.

recordCustomExceptionName: Причина: frameArray:

Этот метод может использоваться для записи единой структуры исключения в отчете. Это особенно полезно, когда ваш код взаимодействует с неродными языками, такими как Lua, С# или Javascript. Этот вызов может быть дорогостоящим и должен использоваться только незадолго до завершения процесса. Этот API не предназначен для использования для регистрации объектов NSException. Все безопасные отчеты NSExceptions автоматически захватываются Crashlytics.

https://docs.fabric.io/appledocs/Crashlytics/Classes/Crashlytics.html#//api/name/recordCustomExceptionName:reason:frameArray:

Ответ 5

Я прошел через разные сайты, чтобы эта функциональность поддерживалась для IOS, чередующейся с Crashlytics.

Я обнаружил, что криттеризм является лучшим до сих пор. @Дима. Я думаю, что это альтернатива Crashlytics. Попробуйте это.

Вот некоторые ссылки, которые полезны для интеграции криттеризма в ваш проект...!

http://docs.crittercism.com/ios/ios.html#logging-handled-exceptions

http://www.raywenderlich.com/34050/overview-of-ios-crash-reporting-tools-part-2

@try {

     } 
@catch (NSException *exc) 
     {
        [Crittercism logHandledException:exc]
    }

Обратитесь к этим ссылкам и убедитесь, что они вам полезны или нет...!

Ответ 7

Это сэкономит ваше время

Crashlytics.sharedInstance(). recordError (ошибка как NSError, withAdditionalUserInfo: [ "User_Id": 0, "User_Name": "ABC", "User_Email": "[email protected]", "User_Contact": "789797" ])