Меню

настройка fabric crashlytics android

Firebase Crashlytics plat_ios plat_android plat_unity

Get clear, actionable insight into app issues with this powerful crash reporting solution for iOS, Android, and Unity.

Firebase Crashlytics is a lightweight, realtime crash reporter that helps you track, prioritize, and fix stability issues that erode your app quality. Crashlytics saves you troubleshooting time by intelligently grouping crashes and highlighting the circumstances that lead up to them.

Find out if a particular crash is impacting a lot of users. Get alerts when an issue suddenly increases in severity. Figure out which lines of code are causing crashes.

Key capabilities

Curated crash reports Crashlytics synthesizes an avalanche of crashes into a manageable list of issues, provides contextual information, and highlights the severity and prevalence of crashes so you can pinpoint the root cause faster.
Cures for the common crash Crashlytics offers Crash Insights, helpful tips that highlight common stability problems and provide resources that make them easier to troubleshoot, triage, and resolve.
Integrated with Analytics Crashlytics can capture your app’s errors as app_exception events in Analytics. The events simplify debugging by giving you access a list of other events leading up to each crash, and provide audience insights by letting you pull Analytics reports for users with crashes.
Realtime alerts Get realtime alerts for new issues, regressed issues, and growing issues that might require immediate attention.

Implementation path

Connect your app Start by adding Firebase to your app in the Firebase console.
Integrate the SDK Add the Crashlytics SDK via CocoaPods or Gradle, and Crashlytics starts collecting reports.
Check reports in the Firebase console Visit the Firebase console to track, prioritize, and fix issues in your app.

Next steps

Get started with Firebase Crashlytics— Learn how to add Firebase Crashlytics to an iOS, Android, or Unity app.

Customize crash reports— Crashlytics automatically starts collecting crash reports as soon as you add the SDK, but you can also customize your setup by adding opt-in reporting, logs, keys, and even tracking of non-fatal errors.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

источник

Сервисы дистрибуции мобильных приложений для iOS. Часть 4 (заключительная): Fabric (Crashlytics)

Достаточно известный ранее сервис Crashlytics с осени 2014 года является частью Fabric — набора специализированных SDK (или, как сказано на официальном сайте, “modular, cross-platform mobile development suite”), каждый из которых возможно интегрировать по отдельности, либо совместно. В своем обзоре я остановлюсь только на Crashlytics Kit — сервисе и SDK, отвечающими за дистрибуцию мобильных приложений.

Система оценки: сервисы оцениваются по 10-балльной шкале по каждому из разделов (Регистрация и интеграция, Основной функционал, Дополнительный функционал, Continuous Integration). Суммарная оценка позволит определить победителя.

Fabric

Регистрация и интеграция

Регистрация в сервисе построена на заявительном принципе — каждый желающий создать новый аккаунт может оставить заявку, которая, исходя из нашего опыта, будет рассмотрена в кратчайшие сроки (не так давно заявка нашего сотрудника была одобрена в течение часа). Лишним будет говорить, что интеграция SDK Fabric является быстрой и простой. Ни один другой сервис дистрибуции не предоставляет настолько удобный пошаговый мастер интеграции. Через этот процесс лучше пройти самостоятельно, редкий случай, когда рутинная, как правило, работа, доставляет удовольствие и выполняется с интересом.

Читайте также:  залезть в настройки wifi роутера

Основной функционал

Примечание (обновлено 15 июня 2015): говоря о дистрибуции приложений для iOS необходимо помнить, что на данный момент все сервисы, кроме TestFlight от Apple, по-прежнему должны учитывать ограничение на количество устройств доступных при использовании AdHoc provision profiles. Следовательно, максимум используемых устройств равен 100 на каждое семейство устройств (это условие было изменено 8 июня 2015 года, после объявления на WWDC об объединении всех developers programs в одну), в которые входят в том числе и устройства, используемые непосредственно разработчиками. Самым же большим ограничением является то, что список зарегистрированных устройств можно “обнулять” только раз в год, после продления подписки на iOS Developer Program (возможно в последующем и это условие будет изменено).

В части основного функционала Fabric концептуально отличается от всех других рассмотренных сервисов. Так, например, добавление нового проекта (“приложения” в терминологии Fabric) осуществляется не на сайте сервиса, а в десктопном клиенте:

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

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

Примечание: Сервис предоставляет возможность для импорта списка тестировщиков из старой версии TestFlight: dev.twitter.com/crashlytics/beta-distribution/testflight-migration. Но этот функционал будет полезным, если вы заранее позаботились об экспорте списка, так как с марта 2015 года старая версия TestFlight уже недоступна.

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

Последующие шаги совпадают с аналогичными шагами у других сервисов: письмо-приглашение, регистрация устройства, установка тестового приложения.

Установить предыдущие версии приложения очень просто, под кнопкой для установки последней версии находится список всех доступных конкретному пользователю версий:

Дополнительный функционал

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

Посмотрим, что же предлагает Fabric.

Первое — это символизация отчётов о падении приложения. И это очевидно даже из оригинального названия сервиса: Crashlytics.

Разработчики SDK прилагают усилия, чтобы сбор и обработка отчётов работали как часы и с максимальной эффективностью. Не утруждая себя пересказом, просто процитирую список с официального сайта:

  • Defensive Reporting: processes that crash often end up sustaining considerable damage before the kernel takes action to terminate them. This can result in secondary crashes, where the crash handling code itself is unable to operate correctly and fails. We’ve invested in making our file handling code extremely defensive, so parsing cache files can’t crash unexpectedly.
  • Stack Unwinding: one of the most abstruse aspects of crash detection is stack unwinding, the seemingly omniscient ability to determine historic code execution that directly lead to the crash. Our SDK determines the calling instruction that works in the case of objc_msgSend and many other methods that conform to Apple’s iOS ABI.
  • Mach Exceptions: we capture crashes using the lowest level system available on iOS and OS X. The Mach Exception API makes it possible for us to capture every crash, consistently, and without some of the indeterminate behavior of other mechanisms. This also gives us data that much more closely matches what a developer would see in Xcode.
  • Uncaught exception reporting: when your app throws an uncaught exception, the Crashlytics springs to life. Crashlytics quickly records the stack trace and state of the device at the time the exception was thrown and sends the crash information to our servers for processing. You get complete visibility for every crash, effortlessly.
  • Caught exception reporting: Crashlytics isn’t just for uncaught exceptions! Adding a single line of code in your catch block will report caught exceptions to Crashlytics for processing, and you are still free to handle the exception however is best for your users. You get the full stack trace and all the same device information we collect for fatal crashes, so you can identify and fix bugs even if your app doesn’t crash!
  • Fully automated deobfuscation: we automate deobfuscation of ProGuarded stack traces for apps built using our ant tools, maven tools or IDE plugins. We did the legwork for you. Built into your existing workflow, our SDK will have negligible impact on your app.
Читайте также:  мгтс пароль настроек роутера

Более подробную информацию можно получить здесь и из пресс-релиза к 3-й версии SDK.

После отправки отчёта с устройства на сервер Fabric (это происходит после перезапуска “упавшего” приложения), сервис рассылает уведомления по электронной почте, а также выводит оповещение на компьютерах с установленным клиентом:

В качестве недостатка можно отметить то, что во втором случае отсуствует возможность запуска Xcode с нужным проектом, классом и выделенной строкой кода (как это сделано в клиенте HockeyApp).

Также возможно настроить интеграцию с трекерами и другими сервисами, после чего уведомления будут передаваться и туда. Большим плюсом является возможность подключения сразу нескольких сервисов. А недостатком — скудность справочной информации, относящейся к данному функционалу.

Примечание: в тестовом проекте была настроена интеграция с Bitbucket и Hipchat. В результате сообщения о новых падениях приходили только в Hipchat, новые тикеты в Bitbucket не создавались.

Fabric предоставляет возможность повысить полезность связанной с отчётами о падении информации при помощи трёх дополнительных инструментов:

Custom keys: фреймворк предоставляет специальные методы, позволяющие сохранить значения переменных, критически важных для последующего анализа.

Примечание: максимальное количество переменных — 64. Подробнее можно узнать тут.

Custom logging: использование макроса “CLS_LOG” позволяет записывать служебные сообщения в лог устройства, однако в отличие от стандартного NSLog при использовании этого макроса лог будет прикреплён к отчёту о падении (подробнее).

Примечание: в отчёте сохраняется весь лог целиком с момента запуска приложения. Есть возможность поиска по логу с использованием регулярных выражений.

User information: также есть возможность идентифицировать пользователя приложения (идентификатор, имя и адрес почты — подробнее). При использовании необходимо учитывать политику Apple в отношении персональных данных.

Для использования не требуется дополнительных действий, при условии интеграции Fabric SDK, вся информация будет собираться в автоматическом режиме. Подробнее о сервисе можно узнать тут.

Читайте также:  zyxel keenetic lite настройка статического ip

Continuous Integration

Примечание: Описанные далее нюансы использования сервисов как части непрерывной интеграции (continuous integration) в данном обзоре подразумевают, что она будет делаться на основе решения, предлагаемого компание Apple. То есть при помощи Mac OS X Server и Xcode bots — подробно на организации такой интеграции я не буду останавливаться, возможно это станет темой для отдельной статьи. Желающие могут ознакомиться с темой самостоятельно, например, обратившись к официальному руководству от Apple.

Для использования API загрузки дистрибутива приложения необходимо получить API_KEY и BUILD_SECRE. Узнать их можно на странице “Settings -> Organizations -> страница с детальной информацией для конкретной организации -> скрытые поля под названием организации”:

Загрузка осуществляется при помощи специальной утилиты, которая включена в фреймворк, пример использования:

Примечание: emails, notesPath и groupAliases — необязательные параметры.

Справочная страница на официальном сайте: http://support.crashlytics.com

Итого суммарная оценка по всем разделам: 34 балла.

Заключение

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

По формальным критериям суммарной оценки сервисы распределились следующим образом:

  1. Fabric — 34 балла.
  2. HockeyApp — 33 балла.
  3. Ubertesters — 32 балла.
  4. Testflight — 15 баллов.

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

*Здесь я подразумеваю узкую специализацию сервиса: если какой-либо член команды не является разработчиком, то в приложении ему недоступен никакой другой дополнительный функционал (кроме того что требуется от приложения по спецификации). И если приложение работает без падений, для предоставления отзыва потребуется использование какого-то другого сервиса.

Второе и третьте место у HockeyApp и Ubertesters — разница в оценках всего 1 балл.

Плюсами HockeyApp является поддержка символизации отчётов о падении и более тесная, в сравнении с другими сервисами, интеграция с Xcode (открытие проекта/класса на строке вызвавшей падение приложения). Из недостатков можно отметить отсутствие нормального бесплатного тарифного плана и ограниченность имеющейся системы сбора отзывов.

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

TestFlight, разместившийся на последнем месте, выглядит аутсайдером, но я думаю, что это временное положение и с дальнейшим развитием как сервиса, так и всей эко-системы разработки от Apple, он вполне может потеснить текущих лидеров, последние новости с WWDC 2015 вселяют определенный оптимизм.

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

источник

Добавить комментарий

Adblock
detector