Блог AppMetrica

Крэши, трекинг и стабильность. Как мы дорабатывали AppMetrica SDK, и почему вам стоит его обновить

Мы регулярно дорабатываем AppMetrica SDK. В последних релизах уделили внимание повышению стабильности отправки данных и общим улучшениям в компоненте крэшей. Но обновиться стоит не только поэтому. Рассказываем о новых вехах в развитии нашего инструментария.


Расшифровка крэшей, возвращение reportReferralUrl и управление буфером событий


Поддержка reportReferralURL

Мы убрали метод reportReferralUrl в одном из прошлых обновлений — он потерял свою актуальность. Сегодня же он снова позволяет отслеживать некоторые кампании. Например, с его помощью реализуется отслеживание установок из Facebook.

В одном из последних обновлений, reportReferralUrl (AndroidiOS [Swift]iOS [ObjС]) вернулся в класс YandexMetrica.

Чтобы задействовать reportReferralUrl, используйте Android SDK версии 3.10.0 или выше и iOS SDK версии не ниже 3.9.2.


Автоматическая загрузка dSYM и mapping-файлов

Раньше, если крэш приходил в зашифрованном виде, его нужно было деобфусцировать или десимволизировать через интерфейс AppMetrica. Для этого к каждому крэшу нужно было отдельно приложить mapping-файл или dSYM.

Мы автоматизировали процесс дешифровки — это сэкономит время при отлове багов. В Android SDK появился плагин, который сам загрузит mapping-файл при сборке нового релиза. В iOS загрузкой dSYM займутся утилита для командной строки или плагин для fastlane.

Для автоматической расшифровки крэшей потребуется Android SDK версии не ниже 3.8.0 и iOS SDK версии 3.8.1 или выше.


Сбор suppressed-exception в Android

Теперь, помимо ANR и самих крэшей, Android SDK умеет получать suppressed-exception.

Чтобы добавить suppressed-exception в свои отчёты, обновите Android SDK до версии 3.7.2 или выше.


Управление размером буфера событий на Android

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

Чтобы избежать подобных случаев, мы добавили метод withMaxReportsInDatabaseCount в класс YandexMetricaConfig.Builder и поле maxReportsInDatabaseCount в класс YandexMetricaConfig.

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

Для управления буфером событий, потребуется Android SDK версии 3.7.2 или выше. Эта фича появится и в iOS, с SDK версии 3.10.0.


Общие исправления и улучшения

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

Мы постоянно заботимся о стабильной работе SDK: правим баги, улучшаем качество доставки событий и добавляем всё больше данных с устройств в ваши отчёты.

Следите за свежестью SDK в приложении, чтобы получать от инструмента максимум. Если чего-то не хватает — будем рады вашему фидбэку на vote.appmetrica.yandex, в Telegram-чате и соцсетях.


--
Следите за свежестью SDK!
— Команда AppMetrica