TGViewer
Flutter. Много Flutter. Много @flutter_amiga · 2.96K subscribers
Post #568 1.21K
Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. Сегодня поговорим о том, как защитить свой код от любопытных глаз и сделать реверс-инжиниринг практически невозможным, используя обфускацию.

Обфускация - процесс преобразования кода, чтобы он перестал быть понятным для человека, но его работоспособность не изменилась.

Как обфусцировать сборку?

Делать это, разумеется, необходимо при сборке для публикации. Например, мы собираем Android App Bundle:


flutter build appbundle --obfuscate --split-debug-info=/symbols


Параметр obfuscate запускает саму обфускацию, а уже split-debug-info выдает специальные файлы, которые помогут расшифровать информацию. Для этого мы указываем директорию, куда их нужно сложить.

Как расшифровать Stack Trace?

Для расшифровки также существует команда, в которую нужно будет передать файл Stack Trace и файл для расшифровки.


flutter symbolize \
-i <stack-trace-file> \
-d <obfuscated-symbols-file>


Сам файл расшифровки нужен для нужной нам архитектуры. Например, для Android на arm64 нужен будет файл app.android-arm64.symbols.

Добавляем файл в Crashlytics

Если мы используем Firebase Crashlytcs или любую подобную систему, то и там мы будем видеть нерасшифрованный Stack Trace. Чтобы этого не случалось, нужно выполнить команду для загрузки символов. Для Firebase она такая:


firebase crashlytics:symbols:upload --app=<firebase-app-id> <path-to-symbols>/symbols


Учтите, что Firebase App ID должен еще и соответствовать платформе - отдельно для Android, отдельно для iOS.

Если вы уже автоматически отправляете dSYM файлы для iOS в Crashlytics, то вам ничего не нужно делать, так как символы уже будут загружены.

Делитесь в комментариях, используете ли обфускацию на проектах?
  • 👍 6
  • 🔥 2
More from @flutter_amiga
  1. Sep 9, 2026AI BOOST’26: выручка падает — что делают крупные digital-агентства и при чем здесь AI 22–2…
  2. Aug 18, 2026Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. Сегодня посмотрим на чек-…
  3. Aug 13, 2026Hola, Amigos! Сегодня вышли Flutter 3.47 и Dart 3.13. Давайте вместе разберемся, что в них…
  4. Jul 31, 2026Дайджест июля Hola, Amigos! Собрали в одну подборку все полезные посты июля, которые вы мо…
  5. Jul 28, 2026Hola, Amigos! Сегодня посмотрим на один пакет, который может быть полезен в разработке - p…
  6. Jul 24, 2026Hola, Amigos! Сегодня мы вводим новую рубрику - обзоры правил для статического анализатора…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →