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

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

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

Пожалуйста, отправляйте dSYM файлы только для тех приложений, которые вы хотите опубликовать.

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

Используйте 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-файлы нельзя будет использовать.

  3. Добавьте этап загрузки dSYM-файлов с помощью инструмента helper в Xcode. Инструмент helper включен в AppMetrica SDK, начиная с версии 3.8.0. Он находится в архиве SDK. Справочник инструмента helper.

    1. Откройте проект в Xcode.

    2. В навигаторе по проекту выберите файл проекта.

    3. В блоке Targets выберите ваше приложение.

    4. Откройте вкладку Build Phases.

    5. Нажмите кнопку + → New Run Script Phase.

    6. В текстовое поле Type a script добавьте:

      if [ -d "${PODS_ROOT}/AppMetricaCrashes" ]; then
      HELPER_PATH=`find "${PODS_ROOT}/AppMetricaCrashes" -name "helper"`
      if [ -x  "${HELPER_PATH}" ]; then
      "${HELPER_PATH}" auto --post-api-key="Post API key"&
      else
      echo "AppMetricaСrash helper was not found"
      fi
      fi
      

      Режим auto использует переменную окружения CONFIGURATION. Если сборка собирается с конфигурацией Debug, dSYM-файлы не загружаются.

Загрузка отсутствующего 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.

  1. Найдите необходимый архив с dSYM-файлом:

    Через Xcode Organizer
    1. В интерфейсе Xcode нажмите WindowOrganizer.

    2. Во вкладке Archives выберите нужную версию приложения.

    3. Нажмите кнопку Download dSYM.

    Через App Store Connect
    1. В интерфейсе iTunes Connect откройте страницу Activity.

    2. Во вкладке All Builds выберите нужный номер сборки.

    3. Нажмите Download dSYM.

    Можно использовать dSYM-файл, который был сгенерирован при сборке.

  2. В интерфейсе AppMetrica перейдите в настройки приложения из меню слева.

  3. Откройте вкладку КрэшиiOS.

  4. Нажмите кнопку Выберите файл и загрузите ZIP-архив, содержащий директории app.dSYM или app.

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

helper -k <post-api-key> <file_path>

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

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

Справочник инструмента 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.
  • AMA_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"&

Узнать больше

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

Написать в службу поддержки