Si te encuentras con algo que no comprendes puedes dejarlo en la sección de comentarios y trataremos de ayudarte rápidamente.
Se necesita ofuscación: una aplicación flutter conoce los nombres de sus funciones, que se pueden mostrar usando la clase StackTrace de Dart. hay subestimado apoyo a la ofuscación. Para habilitarlo:
Para Android:
Agregar al archivo [ProjectRoot]/android/gradle.properties
:
extra-gen-snapshot-options=--obfuscate
Para iOS:
Primero, edita [FlutterRoot]/packages/flutter_tools/bin/xcode_backend.sh
:
Localiza el build aot
llamar, y agregarle una bandera,
$extra_gen_snapshot_options_or_none
definido como:
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
Para aplicar sus cambios, en [FlutterRoot]correr
git commit -am "Enable obfuscation on iOS"
flutter
(Ejecutar “flutter” después de la confirmación reconstruye las herramientas de flutter).
A continuación, en su proyecto, agregue lo siguiente a [ProjectRoot]/ios/Flutter/Release.xcconfig
Archivo:
EXTRA_GEN_SNAPSHOT_OPTIONS=--obfuscate
PD: No he probado el indicador –save-obfuscation-map mencionado en https://github.com/dart-lang/sdk/issues/30524
De nuevo, ofuscación no es muy bien probadocomo lo menciona @mraleph.
Para AppBundle:
Sin que terrible:
flutter build appbundle --obfuscate --split-debug-info=/
Con Terrible:
flutter build appbundle --target-platform android-arm,android-arm64,android-x64 --obfuscate --split-debug-info=/
Para APK:
Sin que terrible:
flutter build apk --obfuscate --split-debug-info=/
Con Terrible:
flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi --obfuscate --split-debug-info=/
Funciona solo para Flutter versión v1.16.2 o superior.
PD: Acerca de dividir:
De forma predeterminada, fat apk contiene arm v7, arm v8 y x64, lo que aumenta el tamaño del apk, lo que no desea. Entonces, cuando lo divide, tiene archivos binarios separados que puede cargar en la tienda y, por lo tanto, reduce el tamaño del apk que un usuario necesitaría descargar.
https://flutter.dev/docs/deployment/obfuscateConsulte este enlace para obtener más información
Nota: ofuscación de código de Flutter, compatible a partir de Flutter 1.16.2.