Tech Racho エンジニアの「?」を「!」に。
  • 開発

Androidでリリース時にデバッグログをオフにする方法

久々の技術ネタです。

Androidでデバッグ用のログを出力する際には

Log.d(String tag, String msg);

としますが、これで出力しているログは、このまま何もしなければリリース時にユーザーさんからも見えてしまします。

やはりデバッグ用のログが見えてしまうのは都合が悪いと思うので、

リリース時に少しのコストでこれを解消するTIPSをご紹介します。

方針としましては、

マニフェストファイルのis_debuggableがtrueの際にデバッグログの出力をオフにすることとします。

public class DeployUtil {

    /**
     * マニフェストファイルを読んでデバッグモードかどうかを取得
     */
    public static boolean isDebuggable(Context context) {
        PackageManager manager = context.getPackageManager();
        ApplicationInfo appInfo = null;
        try {
            appInfo = manager.getApplicationInfo(context.getPackageName(), 0);
        } catch (NameNotFoundException e) {
            return false;
        }
        if ((appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) == ApplicationInfo.FLAG_DEBUGGABLE) {
            return true;
        }
        return false;
    }
}
public class Katazou extends Application {

    private static boolean isDebuggable;

    @Override
    public void onCreate() {
        // デバッグモードか調べる
        isDebuggable = DeployUtil.isDebuggable(getApplicationContext());
    }
}
public class LogUtil {

    /**
    * デバッグログを出力する マニュフェストファイルでデバッグモードになっていなければ出力しない
    */
    public static final void d(String tag, String msg) {
        if (Katazou.isDebuggable()) {
            Log.d(tag, msg);
        }
    }
}

あとは、ソースコード中のLog.dを一括置換でLogUtil.dとすれば、
リリース時にis_debuggableをtrueにするだけで簡単にデバッグログをオフにすることができます。

参考

Android で自動オフできるログ出力


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。