我知道确定我的应用程序是否以 Debug模式运行的两种方法:
如果发布,const bool.fromEnvironment("dart.vm.product")
返回true。
这来自Flutter文档的Sentry部分:
bool get isInDebugMode {
// Assume we're in production mode
bool inDebugMode = false;
// Assert expressions are only evaluated during development. They are ignored
// in production. Therefore, this code will only turn `inDebugMode` to true
// in our development environments!
assert(inDebugMode = true);
return inDebugMode;
}
这两个总是相等的还是在某些情况下他们会给出不同的答案?我应该使用哪个?第一种方法是编译时似乎更喜欢它。
最佳答案
通常,它们应该相同,但是可以有所不同。const bool.fromEnvironment("dart.vm.product")
取决于正在执行的发行版本。我尚未检查profile
构建是否返回true
或false
assert(inDebugMode = true);
取决于启用的断言。
断言默认情况下在 Debug模式下启用,默认情况下在发行版本中禁用,但是应该有一种方法可以独立于发行版/ Debug模式启用/禁用断言,但是我还没有找到方法。也许它没有在Flutter中公开,或者尚未在Dart中实现。
我认为bool.fromEnvironment()
与摇树比较好,因为它可用于创建const值。