Загрузка mapping и SO-файлов на Android

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

Для загрузки mapping и SO-файлов в AppMetrica используется крэш-плагин. Он автоматически загружает mapping и SO-файлы при сборке приложения.

Примечание. Mapping-файлы необходимо загружать, если код приложения обфусцируется с помощью ProGuard или R8. Если код не обфусцируется, не подключайте плагин.
  1. Подключение плагина
  2. Ручная загрузка

Подключение плагина

Внимание. Для работы плагина необходимо подключить AppMetrica SDK не ниже версии 3.8.0.

Чтобы подключить плагин:

  1. Добавьте в корневой файл build.gradle зависимость:
    buildscript {
        ...
        dependencies {
            ...
            classpath 'com.yandex.android:appmetrica-build-plugin:0.1.3'
        }
     }
    Скопировано
  2. Добавьте в файл app/build.gradle:
    ...
    apply plugin: 'appmetrica-plugin'
    
    appmetrica {
        postApiKey = { applicationVariant -> "Post Api key for variant" }
        // or postApiKey = "Post Api key"
        enable = { applicationVariant -> true }    // Optional.
        mappingBuildTypes = ['release']            // Optional.
        offline = false                            // Optional.
        ndk {    // Optional.
            enable = { applicationVariant -> true }
            soFiles = { applicationVariant -> listOfSoFiles }             // Optional.
            additionalSoFiles = { applicationVariant -> listOfSoFiles }   // Optional.
        }
    }
    ...
    Скопировано
    postApiKey *
    Post API key или лямбда-функция, которая возвращает Post API key для ApplicationVariant. Подробнее про ApplicationVariant в документации Android и Javadoc.

    Post API key можно получить в разделе Настройки в AppMetrica. Он используется для идентификации вашего приложения.

    Если offline = true , то параметр не является обязательным.

    enable
    Лямбда-функция, которая принимает ApplicationVariant и возвращает, надо ли использовать плагин для этого варианта сборки.

    Если плагин не используется, apk не меняется и mapping-файл не загружается.

    По умолчанию возвращает true только для buildType = 'release'.

    Примечание. Для указания типов сборок используйте один из параметров: enable или mappingBuildTypes.
    mappingBuildTypes
    Список типов сборок buildType, для которых будет отправляться mapping-файл.

    Значение по умолчанию: ['release'].

    Чтобы отключить загрузку mapping-файлов для определенного типа сборки, удалите из списка нужный buildType.

    Примечание. Для указания типов сборок используйте один из параметров: enable или mappingBuildTypes.
    offline

    Включает режим offline . Boolean или лямбда-функция, которая принимает ApplicationVariant.

    Допустимые значения:

    • true — не загружает файл в AppMetrica. Если включен, после сборки выводит путь до архива в лог. Его можно загрузить вручную через веб-интерфейс.
    • false — автоматически загружает mapping-файл.

    Значение по умолчанию: false.

    ndk

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

    enable

    Лямбда-функция, которая принимает ApplicationVariant и возвращает, надо ли загружать символы из SO-файлов для этого варианта сборки.

    Значение по умолчанию: false.
    soFiles

    Лямбда-функция, которая принимает ApplicationVariant и возвращает список SO-файлов.

    По умолчанию плагин ищет SO-файлы в папках проекта Android Studio.

    Необходимо переопределить, если ваши SO-файлы лежат в необычном месте или если плагин не может их найти.

    additionalSoFiles

    Лямбда-функция, которая принимает ApplicationVariant и возвращает список дополнительных SO-файлов, символы которых необходимо загрузить.

    Обязательный параметр

Ручная загрузка

Для ручной загрузки нужно подключить и использовать плагин с режимом offline. Это необходимо для связывания mapping-файла со сборкой приложения.

  1. В файле app/build.gradle включите режим offline и запустите сборку.
    appmetrica {
        ...
        offline = true
    }
    Скопировано
    offline
    Включает режим offline. Допустимые значения:
    • true — не загружает mapping-файл в AppMetrica. Если включен, после сборки выводит путь до архива в лог.
    • false — автоматически загружает mapping-файл.

    Значение по умолчанию: false.

  2. В интерфейсе AppMetrica перейдите в настройки приложения из меню слева.
  3. Откройте вкладку Крэши → Android.
  4. Нажмите кнопку Выберите файл и загрузите Zip-архив.