我知道有两种方法可以确定我的应用程序是否在调试模式下运行:
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;
}
Run Code Online (Sandbox Code Playgroud)
这两者总是等价的还是在某些情况下他们会给出不同的答案?我应该使用哪个?第一种方法是编译时似乎更有利。
一般来说,它们应该是相同的,但也可能存在差异。
const bool.fromEnvironment("dart.vm.product")取决于正在执行的发布版本。我还没有检查profile构建是否返回true或false
assert(inDebugMode = true);取决于断言是否启用。断言默认在调试模式下启用,默认情况下在发布版本中禁用,但应该有一种方法可以独立于发布/调试模式启用/禁用断言,但我还没有找到方法。也许它还没有在 Flutter 中公开,或者还没有在 Dart 中实现。
我认为bool.fromEnvironment()使用 tree-shaking 效果更好,因为它可以用来创建 const 值。
| 归档时间: |
|
| 查看次数: |
3192 次 |
| 最近记录: |