我正在寻找一种在应用程序处于调试模式时在Flutter中执行代码的方法。在颤振有可能吗?我在文件里找不到。

就像这样

If(app.inDebugMode) {
   print("Print only in debug mode");
}

如何检查Flutter应用程序是运行在调试模式还是发布模式?


当前回答

导入这个

import 'package:flutter/foundation.dart' 


String bulid = kReleaseMode ? "Release" : "";

or

String bulid = kDebugMode ? "Debug" : "";

or

String bulid = kProfileMode ? "Profile" : "";

或者试试这个

if (kDebugMode) {
   print("Debug");
} else if (kReleaseMode) {
    print("Release"); 
} else if (kProfileMode) {
  print("Profile"); 
}

其他回答

不要挑剔,但是基础包包含一个kDebugMode常量。

So:

import 'package:flutter/foundation.dart' as Foundation;

if(Foundation.kDebugMode) {
   print("App in debug mode");
}

导入这个

import 'package:flutter/foundation.dart' 


String bulid = kReleaseMode ? "Release" : "";

or

String bulid = kDebugMode ? "Debug" : "";

or

String bulid = kProfileMode ? "Profile" : "";

或者试试这个

if (kDebugMode) {
   print("Debug");
} else if (kReleaseMode) {
    print("Release"); 
} else if (kProfileMode) {
  print("Profile"); 
}

这里有一个简单的解决方案:

import 'package:flutter/foundation.dart';

然后你可以使用kReleaseMode like

if(kReleaseMode){ // Is Release Mode??
    print('release mode');
} else {
    print('debug mode');
}

我创建了这个有用的类,基于其他答案和Android使用的启发。 如果“Foundation”包上有任何更改,则不需要更改整个应用程序,只需要更改这个类。

import 'package:flutter/foundation.dart' as Foundation;

abstract class Build {

    static const bool isDebugMode = Foundation.kDebugMode;

    static const bool isReleaseMode = Foundation.kReleaseMode;

    static const bool isWeb = Foundation.kIsWeb;

    static const bool isProfileMode = Foundation.kProfileMode;

}

创建一个名为constants.dart的文件。把这些变量加进去:

const bool kReleaseMode = bool.fromEnvironment('dart.vm.product');
const bool kProfileMode = bool.fromEnvironment('dart.vm.profile');
const bool kDebugMode = !kReleaseMode && !kProfileMode;

printk(String string) {
  if (kDebugMode) {
    // ignore: avoid_print
    print(string);
  }
}

然后在任何其他文件中导入这个常量文件,并像这样使用它:

    import 'package:package_name/constants.dart';

    if(kDebugMode){
        //Debug code
    }else{
        //Non-Debug code
    }

    printk("Debug Log");