<< Android-Note
Logをリリース時に削除するには
アプリログを出力できるのはのデバック時にはとても便利です。
ただ、リリースするとなるとアプリの内部情報が漏れるのでいちいち手打ちで消したという経験がある人もいるのではないでしょうか?
実はそんなことをしなくても、もっと楽にログ出力を消す方法があります。
それはコードの難読化に使われるProGuardを使う方法です。
project.propertiesの設定
まずProGuardの -assumenosideeffects オプションを使うためにproject.propertiesの設定を変更します。
project.propertiesを開くと次のような行があります。
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
もしこの行があれば、それを次のように書き換えます。
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
ProGuardを適用
次にproguard-project.txtを開いてログ出力しているandroid.util.Logを無効化します。
-assumenosideeffects class android.util.Log { public static boolean isLoggable(java.lang.String, int); public static int v(...); public static int d(...); public static int i(...); public static int w(...); public static int e(...); }
-assumenosideeffects オプションをつけるとそのクラスをコードから削除できます。
この例ではログ全てを無効にしているのでエラーログだけ残しておきたいなどの場合はその関数は # でコメントアウトすればOKです。
実際、リリースしてログ出力されないか確認してみてください。
以上ログ出力を削除にする方法でした。では、また!
関連項目
© Kaz