Выбор ответа Senior Сборка и публикация обновлено

Flutter: обфускация и стек-трейсы

Вопрос

Приложение собрано с --obfuscate --split-debug-info=build/symbols. Что обязательно сделать, чтобы разбирать падения из продакшена?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Сохранить символы каждой версии и загрузить их в сервис падений. Обфускация переименовывает символы Dart, а split-debug-info выносит соответствие имён в отдельные файлы.

Варианты ответа

  1. Ничего: Crashlytics восстановит имена функций автоматически по бинарнику
  2. Отключить обфускацию в следующей версии, иначе стеки так и останутся нечитаемыми
  3. Сохранить символы каждой версии и загрузить их в сервис паденийправильный ответ
  4. Собирать продакшен с --debug, чтобы в стек-трейсах были настоящие имена

Разбор

Обфускация переименовывает символы Dart, а split-debug-info выносит соответствие имён в отдельные файлы. Без них стек-трейсы из продакшена превращаются в бессмыслицу, и восстановить их по бинарнику нельзя. Файлы символов хранят как артефакты релиза и загружают в сервис падений. Отключать обфускацию или выпускать debug не нужно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.