Выбор ответа Senior Сборка и публикация обновлено
Flutter: обфускация и стек-трейсы
Вопрос
Приложение собрано с --obfuscate --split-debug-info=build/symbols. Что обязательно сделать, чтобы разбирать падения из продакшена?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Сохранить символы каждой версии и загрузить их в сервис падений. Обфускация переименовывает символы Dart, а split-debug-info выносит соответствие имён в отдельные файлы.
Варианты ответа
- Ничего: Crashlytics восстановит имена функций автоматически по бинарнику
- Отключить обфускацию в следующей версии, иначе стеки так и останутся нечитаемыми
- Сохранить символы каждой версии и загрузить их в сервис паденийправильный ответ
- Собирать продакшен с
--debug, чтобы в стек-трейсах были настоящие имена
Разбор
Обфускация переименовывает символы Dart, а split-debug-info выносит соответствие имён в отдельные файлы. Без них стек-трейсы из продакшена превращаются в бессмыслицу, и восстановить их по бинарнику нельзя. Файлы символов хранят как артефакты релиза и загружают в сервис падений. Отключать обфускацию или выпускать debug не нужно.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.