Подтвердить что ты не робот

Какая разница между DWARF и DWARF с файлом dSYM?

XCode поддерживает эти 2 значения для этой настройки сборки:

Настройки сборки > Параметры сборки > Формат отладочной информации.

Может кто-нибудь объяснить различия?

4b9b3361

Ответ 1

Разница заключается в том, что в случае DWARF с файлом dSYM ваш файл архива app.xcarchive(для дистрибутива adHoc) содержит также файл dSYM, необходимый для обратной символики вашего кода в отчетах о сбоях. В общем случае .xcarchive содержит

dSyms
Products
info.plist

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

Ответ 2

Как всегда понимание сокращений поможет!

DWARF - это широко используемый стандартизированный формат данных отладки:

DWARF изначально разрабатывался вместе с исполняемым и связываемым форматом (ELF), хотя он не зависит от форматов объектных файлов. Название является средневековым фэнтезийным дополнением к "ELF", которое не имеет официального значения. Только то, что оба (карлик и эльф) являются мифологическими существами

Символ отладки (dSYM):

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

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

Например, если у вас есть библиотека libfoo.dylib, файл символов отладки будет libfoo.dylib.dSYM.

Отсюда

Короче говоря

  • DWARF это просто файл отладки

  • DWARF с файлом dSYM - это файл отладки вместе с файлом символов


Pro совет:

В нашем проекте GitHub repo, в разделе релизов у нас есть что-то вроде этого:

enter image description here

Мы вручную загружаем файлы .ipa и dysm поэтому, если через 3 месяца у пользователя dysm странный сбой в нашей сборке 10.16, мы перейдем к этой ветке релиза, запустим ее с этим dsym и попытаемся воспроизвести проблему.

Ответ 3

DWARF (отладка с помощью атрибутивных форматов записей) - это формат файла отладки, используемый многими компиляторами и отладчиками для поддержки отладки на уровне источника. Это формат отладочной информации в объектном файле. Описание программы в формате DWARF - это древовидная структура, в которой у каждого узла могут быть дочерние или дочерние элементы. Узлы могут представлять типы, переменные или функции.

источник: https://www.ibm.com/developerworks/aix/library/au-dwarf-debug-format/index.html


DWARF с файлом dSYM хранит символы отладки для вашего приложения

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

Источник: что такое dSYM и как его использовать? (iOS SDK)

Ответ 4

Из "Справки редактора проектов":

Формат отладочной информации (DEBUG_INFORMATION_FORMAT)

Тип отладочной информации для производства.

DWARF: объектные файлы и связанные продукты будут использовать DWARF в качестве формата отладочной информации. карликовый

DWARF с файлом dSYM: объектные файлы и связанные продукты будут использовать DWARF в качестве формата информации об отладке, а Xcode также создаст файл dSYM, содержащий отладочную информацию из отдельных объектных файлов (за исключением того, что файл dSYM не требуется и не будет создан для статических библиотек или продуктов объектных файлов). Карлик-с-dsym