DSYM и двоичные файлы необходимы для символизации? Или только ДСИМ?

Начал использовать Crashlytics, и мне любопытно, почему только нужно загружать DSYM, а не полный двоичный файл .app для соответствия. У меня сложилось впечатление, что для символизации вам нужен двоичный файл с соответствующим файлом DSYM. Разве это не так? По сути, пытаясь понять магию того, как Crashlytics символизирует, когда все, что я делаю в своем приложении, — это запускаю скрипт после сборки, который загружает DSYM.


person stonedauwg    schedule 20.10.2016    source источник
comment
Только что понял, что это может быть дубликат stackoverflow.com/questions/28404342/ . Этот вопрос остается без ответа, хотя   -  person stonedauwg    schedule 21.10.2016


Ответы (1)


Майк из Fabric и Crashlytics здесь.

Файл dSYM фактически содержит все символы отладки вашего приложения, необходимые для обозначения отчета о сбое. Вот почему мы рекомендуем установить для вашего Debug_Information_Format значение «Гном с dSYM». Мы также генерируем уникальный идентификатор сборки, так что даже если номер сборки и версии не изменяются, dSYM, загруженный для этой сборки, остается точным для любых отчетов о сбоях, которые необходимо символизировать.

Вы также можете прочитать дополнительную информацию на от Apple, но самая важная часть заключается в следующем: «Поскольку компилятор переводит ваш исходный код в машинный код, он также генерирует символы отладки, которые сопоставляют каждую машинную инструкцию в скомпилированном двоичном файле со строкой исходного кода, из которой она возникла. В зависимости от формата отладочной информации (DEBUG_INFORMATION_FORMAT), эти символы отладки хранятся внутри двоичного файла или в сопутствующем файле символов отладки (dSYM)».

Как отмечалось выше, символы могут быть только в файле dSYM, поэтому мы рекомендуем установку Debug_Information_Format.

person Mike Bonnell    schedule 21.10.2016
comment
Спасибо @MikeBonnell, для меня все это имеет смысл. Тем не менее, до сих пор не понимаю, почему XCode требует двоичного И dsym (связанный документ Apple даже указывает это), если команда atos и все, что вы, люди, используете для символизации, не - person stonedauwg; 21.10.2016
comment
Если для параметра Debug_information_format не задано значение Dwarf с dSYM, символы отладки включаются в двоичный файл для сборок, связанных с отладкой, а не в отдельный файл dSYM. - person Mike Bonnell; 21.10.2016
comment
Я понимаю, что Dwarf с dSYM приводит к символам только в dSYM. Но если это так, то почему XCode нужен двоичный (.app) файл, а также dSYM, когда Crashlytics нужен только dSYM? Я прочитал справочную страницу для atos cmd, и, похоже, вам нужен двоичный файл вместе с dSYM. Это потому, что Fabric использует метод сравнения, а не XCode и atos? - person stonedauwg; 21.10.2016