Загрузка dSYM-файлов на iOS

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

Для загрузки dSYM-файлов в AppMetrica SDK включен инструмент командной строки helper. Для сборки с помощью fastlane поддержан плагин загрузки. С их помощью можно настроить автоматическую загрузку dSYM-файлов при сборке приложения.

  1. Автоматическая загрузка при сборке
  2. Загрузка отсутствующего dSYM-файла
  3. Справочник инструмента helper

Автоматическая загрузка при сборке

Если генерация Bitcode включена и вы используете fastlane для сборки приложения:

  1. Установите fastlane-плагин appmetrica:
    fastlane add_plugin appmetrica
    Скопировано

    Подробнее о добавлении плагина в документации fastlane.

  2. Добавьте в файл fastlane/Fastfile следующее:
    lane :release do
      # Your actions before.
      gym(
        workspace: "MyApp.xcworkspace",
        configuration: "Release",
        scheme: "MyApp",
        export_method: "app-store"        # Pass the correct export_method.
      )
      upload_symbols_to_appmetrica(post_api_key: "Post API key")
      # Your actions after.
    end
    Скопировано

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

    Внимание. Для сборки приложения используется action gym с экспортом. Если вы собираете приложение с помощью Xcode, приложение будет перекомпилировано после загрузки в App Store Connect. Тогда сгенерированые при сборке dSYM-файлы нельзя будет использовать.
Если генерация Bitcode выключена
Если генерация Bitcode выключена и вы собираете приложение через Xcode, в Build Phases можно добавить этап загрузки dSYM-файлов с помощью инструмента helper.
Примечание. Инструмент helper включен в AppMetrica SDK, начиная с версии 3.8.0. Он находится в архиве SDK.
  1. Откройте проект в Xcode.
  2. В навигаторе по проекту выберите файл проекта.
  3. В блоке Targets выберите ваше приложение.
  4. Откройте вкладку Build Phases.
  5. Нажмите кнопку + → New Run Script Phase.
  6. В текстовое поле Type a script добавьте:
    if [ -d "${PODS_ROOT}/YandexMobileMetrica" ]; then
        HELPER_PATH=`find "${PODS_ROOT}/YandexMobileMetrica" -name "helper"`
        if [ -x $HELPER_PATH ]; then
            $HELPER_PATH auto --post-api-key="Post API key"&
        else
            echo "AppMetrica crash helper was not found"
        fi
    fi
    Скопировано
    Примечание. Режим auto использует переменную окружения CONFIGURATION. Если сборка собирается с конфигурацией Debug, dSYM-файлы не загружаются.

    Справочник инструмента helper.

Загрузка отсутствующего dSYM-файла

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

Чтобы их символизировать, загрузите отсутствующие dSYM-файлы. Список отсутствующих файлов можно посмотреть на странице Настройки → Крэши вашего приложения в AppMetrica.

Отсутствующие dSYM-файлы можно загрузить:

  1. Установите fastlane-плагин appmetrica:
    fastlane add_plugin appmetrica
    Скопировано

    Подробнее о добавлении плагина в документации fastlane.

  2. Добавьте в файл fastlane/Fastfile следующее:
    lane :refresh_dsyms do
      download_dsyms
      upload_symbols_to_appmetrica(post_api_key: "Post API key")
      clean_build_artifacts
    end
    Скопировано
    В действии download_dsyms можно указать необходимую версию приложения и номер сборки:
    ...
      download_dsyms(version: "1.0.0", build_number: "345")
    ...
    Подробнее о действии download_dsyms в документации fastlane.

Справочник инструмента helper

Примечание. Инструмент helper включен в AppMetrica SDK, начиная с версии 3.8.0. Он находится в архиве SDK.

Helper — инструмент командной строки, который позволяет загружать dSYM-файлы в AppMetrica.

$ helper [auto] [-o | --package-output-path=<path>] [-v | --verbose]
         [--version] -k <post-api-key> | --post-api-key=<key> [file ...]

Параметры

auto
Автоматический режим загрузки. В нем helper использует следующие переменные:
  • CONFIGURATION — используется для определения конфигурации. Если сборка собирается с конфигурацией Debug, dSYM-файлы не загружаются.
  • DWARF_DSYM_FOLDER_PATH — используется для нахождения dSYM-файлов. Она обычно зависит от переменной BUILT_PRODUCTS_DIR.
  • YMM_POST_API_KEYPost API key. Если указан, в автоматическом режиме можно использовать короткую команду helper auto&.
‑k

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

‑o

Путь к папке, в которой хранятся временные файлы.

По умолчанию используется системная папка.

‑v

Включает отображение дополнительной информации.

‑‑version

Выводит версию.

file

Список dSYM-файлов или папок, в которых они лежат.

По умолчанию используется локальная рабочая папка.

& позволяет запускать helper параллельно, не блокируя сборку всего проекта. Пример команды:
helper auto --post-api-key="Post API key"&