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です。

実際、リリースしてログ出力されないか確認してみてください。

以上ログ出力を削除にする方法でした。では、また!

関連項目
プライバシーポリシー