Как запутать приложения Flutter? - PullRequest
0 голосов
/ 26 мая 2018

Вики Флаттера упоминают, что обфускация является опцией в режиме выпуска.
И, тем не менее, команда сборка флаттера не имеет соответствующей опции - см .:
flutter help -v build apk

Я что-то здесь упускаю?
Они сделали обфускацию по умолчанию?
Имеет ли даже запутывание значение для флаттера?

Любые указатели на это будут очень признательны.

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Требуется запутывание - приложение флаттера знает имена своих функций, которые можно показать с помощью класса StackTrace Дартса.Есть протестированная поддержка для запутывания.Чтобы включить его:


для Android :
Добавить в файл [ProjectRoot]/android/gradle.properties:

extra-gen-snapshot-options=--obfuscate

для iOS:
Сначала отредактируйте [FlutterRoot]/packages/flutter_tools/bin/xcode_backend.sh:
Найдите вызов build aot и добавьте к нему флаг,

${extra_gen_snapshot_options_or_none}

, определенный как:

local extra_gen_snapshot_options_or_none=""
if [[ -n "$EXTRA_GEN_SNAPSHOT_OPTIONS" ]]; then
  extra_gen_snapshot_options_or_none="--extra-gen-snapshot-options=$EXTRA_GEN_SNAPSHOT_OPTIONS"
fi

Чтобы применить ваши изменения, в [FlutterRoot] запустите

git commit -am "Enable obfuscation on iOS"  
flutter  

(Запуск «флаттера» после коммита перестраивает инструменты флаттера.)

Далее, в вашем проекте добавьте следующее к[ProjectRoot]/ios/Flutter/Release.xcconfig file:

EXTRA_GEN_SNAPSHOT_OPTIONS=--obfuscate

PS: еще не пробовал флаг --save-obfuscation-map, упомянутый в https://github.com/dart-lang/sdk/issues/30524
Опять запутывание isn't очень хорошо проверено , как упомянуто @ mraleph.

0 голосов
/ 28 мая 2018

В настоящее время обфускация не отображается напрямую через CLI флаттера.

Вы можете попытаться явно передать аргументы в gen_snapshot следующим образом:

flutter build --extra-gen-snapshot-options=--obfuscate,--save-obfuscation-map=build/symbols.json --release

Примечание: это запутываниеподдержка не очень хорошо протестирована и может не работать в данный момент.

...