XCode поддерживает эти 2 значения для этой настройки сборки:
Настройки сборки > Параметры сборки > Формат отладочной информации.
Может кто-нибудь объяснить различия?
XCode поддерживает эти 2 значения для этой настройки сборки:
Настройки сборки > Параметры сборки > Формат отладочной информации.
Может кто-нибудь объяснить различия?
Разница заключается в том, что в случае DWARF с файлом dSYM ваш файл архива app.xcarchive(для дистрибутива adHoc) содержит также файл dSYM, необходимый для обратной символики вашего кода в отчетах о сбоях. В общем случае .xcarchive содержит
dSyms
Products
info.plist
Итак, если вам это нужно для внешнего анализа отчетов о сбоях при архивировании вашего приложения для распространения, вы должны использовать DWARF с файлом dSYM.
Как всегда понимание сокращений поможет!
DWARF - это широко используемый стандартизированный формат данных отладки:
DWARF изначально разрабатывался вместе с исполняемым и связываемым форматом (ELF), хотя он не зависит от форматов объектных файлов. Название является средневековым фэнтезийным дополнением к "ELF", которое не имеет официального значения. Только то, что оба (карлик и эльф) являются мифологическими существами
Символ отладки (dSYM):
По умолчанию отладочные сборки приложения хранят символы отладки в скомпилированном двоичном файле, в то время как выпускаемые сборки приложения хранят символы отладки в сопутствующем файле dSYM, чтобы уменьшить размер двоичного файла.
Файл символа отладки и двоичный файл приложения связываются вместе для каждой сборки с помощью UUID сборки. Новый UUID генерируется для каждой сборки вашего приложения и однозначно идентифицирует эту сборку. Даже если функционально идентичный исполняемый файл будет перестроен из того же исходного кода с теми же настройками компилятора, он будет иметь другой UUID сборки.
Например, если у вас есть библиотека libfoo.dylib, файл символов отладки будет libfoo.dylib.dSYM.
Короче говоря
DWARF это просто файл отладки
DWARF с файлом dSYM - это файл отладки вместе с файлом символов
Pro совет:
В нашем проекте GitHub repo, в разделе релизов у нас есть что-то вроде этого:
Мы вручную загружаем файлы .ipa
и dysm
поэтому, если через 3 месяца у пользователя dysm
странный сбой в нашей сборке 10.16, мы перейдем к этой ветке релиза, запустим ее с этим dsym и попытаемся воспроизвести проблему.
DWARF (отладка с помощью атрибутивных форматов записей) - это формат файла отладки, используемый многими компиляторами и отладчиками для поддержки отладки на уровне источника. Это формат отладочной информации в объектном файле. Описание программы в формате DWARF - это древовидная структура, в которой у каждого узла могут быть дочерние или дочерние элементы. Узлы могут представлять типы, переменные или функции.
источник: https://www.ibm.com/developerworks/aix/library/au-dwarf-debug-format/index.html
DWARF с файлом dSYM хранит символы отладки для вашего приложения
Такие сервисы, как crashlytics, используют его для замены символов в журналах аварийных остановок соответствующими именами методов, чтобы он был читабельным и имел смысл.
Из "Справки редактора проектов":
Формат отладочной информации (DEBUG_INFORMATION_FORMAT)
Тип отладочной информации для производства.
DWARF: объектные файлы и связанные продукты будут использовать DWARF в качестве формата отладочной информации. карликовый
DWARF с файлом dSYM: объектные файлы и связанные продукты будут использовать DWARF в качестве формата информации об отладке, а Xcode также создаст файл dSYM, содержащий отладочную информацию из отдельных объектных файлов (за исключением того, что файл dSYM не требуется и не будет создан для статических библиотек или продуктов объектных файлов). Карлик-с-dsym