Flutterのwiki 難読化はリリースモードのオプトインであると記載されています。
それでも、flutter buildコマンドには関連するオプションがありません-参照:flutter help -v build apk
ここで何か不足していますか?
難読化をデフォルトにしましたか?
難読化はフラッターにも関係がありますか?
これについてのご意見をお待ちしております。
難読化が必要です。フラッターアプリは、Dartの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
ファイルに追加します。
EXTRA_GEN_SNAPSHOT_OPTIONS=--obfuscate
PS: https://github.com/Dart-lang/sdk/issues/30524 に記載されている--save-obfuscation-mapフラグを試していない
繰り返しますが、難読化はうまくいきませんテスト済み 、@ mralephで言及されているように
現時点では、難読化はフラッターCLIを介して直接公開されていません。
次のように、gen_snapshot
に引数を明示的に渡すことができます。
flutter build --extra-gen-snapshot-options=--obfuscate,--save-obfuscation-map=build/symbols.json --release
注:難読化のサポートは十分にテストされておらず、現時点では機能しない可能性があります。