Как создается файл.dSYM?

Я работаю над приложением с другим разработчиком, и они только что отправили релиз в магазин приложений, созданный на их компьютере. Чтобы сделать сборку на моем компьютере (которая принадлежит тому же git commit), мне нужно изменить путь к одной из библиотек, которые мы используем в моем проекте XCode. Будут ли какие-либо изменения, внесенные в файл проекта XCode, изменять dSYM? Если бы мне удалось сделать сборку без изменения файла проекта XCode, был бы файл dSYM таким же?

1 ответ

Решение

Файл dSYM является "файлом отладочных символов". Он генерируется, когда параметр "Strip Debug Symbols" включен в настройках сборки вашего проекта.

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

Файлы dSYM, вероятно, будут меняться при каждой компиляции вашего приложения (вероятно, каждый раз из-за отметки даты) и не будут иметь ничего общего с настройками проекта.

Они полезны для повторной символизации ваших отчетов о сбоях. С удаленным двоичным файлом вы не сможете прочитать отчеты о сбоях без предварительной повторной символизации. Без dSYM отчет о сбое просто покажет адреса памяти объектов и методов. Xcode использует dSYM, чтобы поместить символы обратно в отчет о сбое и позволить вам правильно его прочитать.

В идеале, ваш файл dSYM не должен отслеживаться в вашем git-репо. Как и другие двоичные файлы, которые меняются при сборке, не имеет смысла держать их под контролем исходного кода. Однако, учитывая это, важно, чтобы вы хранили файлы dSYM для каждой распределенной сборки (бета-версии, пресс-релизы, дистрибутивы магазинов приложений и т. Д.) В безопасном месте, чтобы вы могли символизировать любые отчеты о сбоях, которые вы можете получить. XCode делает это автоматически для вас, когда вы используете опцию Archive. Созданный архив содержит ваше приложение и его dSYM и хранится в каталоге производных данных XCode.

Другие вопросы по тегам