Включение пользовательских данных в аварийные свалки iOS

Приветствие Stack Overflow!

Простой вопрос для вас: возможно ли встраивать собственные данные об ошибках в автоматически создаваемые дампы сбоев iOS, которые я получаю от своих пользователей, когда мое приложение разбилось на их устройстве?

Например: моя база данных SQlite не работает по какой-либо причине (скажем, файл базы данных поврежден). Я не могу восстановить эту ошибку, поэтому я бросаю исключение и встраиваю в исключение подробное сообщение об ошибке sqlite, Проблема в том, что дамп сбоя приложения не будет содержать сообщение об исключении, поэтому нелегко узнать, при каких условиях приложение разбилось.

Кто-нибудь знает способ поместить вещи в отчет об авариях? Или у вас есть какой-либо другой рекомендуемый способ сообщить о производственных авариях разработчику?

Спасибо!

Ответы

Ответ 1

Нет, вы не можете рекламировать свои собственные данные в отчетах о сбоях. Из-за песочницы также невозможно получить доступ к отчетам о сбоях iOS автоматически.

Итак, мое предложение выглядит следующим образом:

  • Для регистрации собственных данных используйте Cocoalumberjack. Он намного быстрее, чем NSLog или другие фреймворки ведения журналов, и имеет возможность записывать ваши сообщения в файл. Теперь, когда возникает исключение или всякий раз, когда вы хотите, запишите это в файл. Но если ваше приложение падает прямо в точке, где вы добавляете что-то в файл журнала, скорее всего, он будет отсутствовать, так как приложение разбилось в тот же момент.

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

    В общем, попробуйте не записывать слишком много.

  • Для получения отчета о сбое вы должны использовать не что иное, как решение на основе фреймворка с открытым исходным кодом PLCrashReporter, которое может безопасно ломает сбои, также когда приложение уже находится в магазине приложений! Исключение исключений не рекомендуется, проверьте эту статью, чтобы узнать, почему!

    iTunes Connect также предлагает вам просматривать некоторые отчеты об авариях, но для просмотра некоторых из них требуется до 2 недель, но далеко не все, например. указали Camera + developers. Поэтому вам лучше использовать собственное решение.

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

    Некоторые решения на основе PLCrashReporter:

    • QuincyKit: клиент с открытым исходным кодом + php-сервер, базовая разбивка, символика может быть автоматизирована с вашего mac (я разработчик это)
    • HockeyApp: Платная услуга, использует клиент QuincyKit, расширенную группировку сбоев, символику, полностью выполненную на сервере (я нахожусь на разработчиках )
    • Bugsense: бесплатный сервис, символизация объявлена ​​как функция премиум-класса
    • AppBlade: Платная услуга, неизвестная символика
    • Crashlytics: Частная бета-версия, неизвестные функции, их решение, похоже, основано на PLCrashReporter
  • Предлагаемые решения позволяют либо автоматически отправлять данные при следующем запуске, либо спрашивать пользователя, согласен ли он/она отправить.

Ответ 2

Disclaimer-as-per-the-faq: Я разработчик для AppBlade.

AppBlade позволяет отправлять пользовательские параметры вместе с символическими отчетами о сбоях по состоянию на декабрь 2012 года.

Проверьте это! http://blog.appblade.com/news/2012/12/appblade-sdk-update-sessions-and-queues/