バッテラが如く

プログラミングしましょ!

【Flutter】Avoid `print` calls in production codeの解決方法

この記事の情報は次のバージョンで動作確認しています。

  • MacOS Monterey (12.1)
  • Flutter (v2.10.4)
  • VSCode (v1.67.2)
  • Flutter

    はじめに

    print("デバッグ情報を表示");
    

    変数の値をコンソールにログ出力時にprintをよく使うと思います。

    しかし、よく見ると警告が表示されています。

    Avoid `print` calls in production code

    エラーではないのでほっとおいてもいいのですが、なんか気持ち悪いので調査しましたので解決策を共有したいと思います。

    原因

    警告文を直訳すると「製品コードにprintを呼ぶべきではない」というものです。

    つまり製品版にもログが出ちゃうよー という話で警告になってます。

    まぁリリースする時にはprint等のデバッグ処理はコメントするので正直気にしなくてもいいとは思います。

    対策1 (debugPrintを使う)

    debugPrint("デバッグ情報を表示");
    

    printの代わりにdebugPrintを使うと警告が消えます。

    使い方はprintと同じです。

    対策2 (kDebugMode + print)

    kDebugModeで囲っても警告を消すことができました。

    if (kDebugMode) {
        print("デバッグ情報を表示"); 
    }
    

    kDebugModeデバッグ時のみtrueになるフラグです。

    かなり冗長化するので

    これはもはや無理やりですが、kDebugMode