私はすでにFlutterアプリを作成しました。リリースapkは約14MBです。私はこれを縮小する方法を検索し、これを見つけました: https://flutter.io/Android-release/#enabling-proguard
しかし、私の質問は、ステップ1で使用したすべての追加ライブラリをどのように知ることができるかということです。それらを知るためのコマンドはありますか、それとも私がpubspec.yaml
に追加したすべての依存関係ですか?
どのようにこのファイルにそれらを実装する必要がありますか/Android/app/proguard-rules.pro
?
まず、ビルドファイルで縮小と難読化を有効にします。 build.gradle
フォルダ内にある/Android/app/
ファイルを見つけて、太字の行を追加します
Android {
...
buildTypes {
release {
signingConfig signingConfigs.debug
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
次に、Flutterラッパーコード全体を保持する構成を作成します。 /Android/app/proguard-rules.pro
ファイルを作成し、その中に挿入します。
#Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
Firebaseを使用している場合は、 Firebase Auth でProGuardを使用するとFlutterビルドがクラッシュするをご覧ください。
次に、pubspec.yaml
の依存関係を考慮する必要があります。純粋なDartパッケージはすぐに無視できます。プラグインを探しているだけです。これらのプラグインのうち、既存のライブラリを利用するプラグインに関心があります。これらをgradleに追加した可能性があります。これらは、名前の短縮から保護する必要があるものです。
最も簡単なアプローチは、それを試して、どのパッケージ名がNoClassDefFoundError
にポップアップするかを確認し、それらを繰り返し追加し続けることです。
レミが言うように、あなたの利益は最小限になるので、それは本当に面倒な価値があります。今後のリリースでは、APKサイズにいくつかの改善が見られるはずです。