Начал использовать Crashlytics, и мне любопытно, почему только нужно загружать DSYM, а не полный двоичный файл .app для соответствия. У меня сложилось впечатление, что для символизации вам нужен двоичный файл с соответствующим файлом DSYM. Разве это не так? По сути, пытаясь понять магию того, как Crashlytics символизирует, когда все, что я делаю в своем приложении, — это запускаю скрипт после сборки, который загружает DSYM.
DSYM и двоичные файлы необходимы для символизации? Или только ДСИМ?
Ответы (1)
Майк из Fabric и Crashlytics здесь.
Файл dSYM фактически содержит все символы отладки вашего приложения, необходимые для обозначения отчета о сбое. Вот почему мы рекомендуем установить для вашего Debug_Information_Format
значение «Гном с dSYM». Мы также генерируем уникальный идентификатор сборки, так что даже если номер сборки и версии не изменяются, dSYM, загруженный для этой сборки, остается точным для любых отчетов о сбоях, которые необходимо символизировать.
Вы также можете прочитать дополнительную информацию на от Apple, но самая важная часть заключается в следующем: «Поскольку компилятор переводит ваш исходный код в машинный код, он также генерирует символы отладки, которые сопоставляют каждую машинную инструкцию в скомпилированном двоичном файле со строкой исходного кода, из которой она возникла. В зависимости от формата отладочной информации (DEBUG_INFORMATION_FORMAT), эти символы отладки хранятся внутри двоичного файла или в сопутствующем файле символов отладки (dSYM)».
Как отмечалось выше, символы могут быть только в файле dSYM, поэтому мы рекомендуем установку Debug_Information_Format
.