说这个之前,我们先来回顾一下 Flutter的四种运行模式:Debug、Release、Profile和test ,在实际开发中,我们往往需要根据当前运行模式的不同,选择不同的操作,比如在Debug模式启用Log、在生产模式关闭Log。
如果你是一名Android开发者,肯定对于这个不陌生,在Android中,有一个根据gradle配置自动生成的BuildConfig类来判断当前的运行模式。同样的,在Flutter里面也是有方法来判断的,我们需要用到 dart.vm.product
环境标识位,具体使用方法为:
const bool inProduction = const bool.fromEnvironment("dart.vm.product");
当App运行在Release环境时,inProduction为true;当App运行在Debug和Profile环境时,inProduction为false。
- Release:
const bool.fromEnvironment("dart.vm.product") = true
; - Debug:
assert(() { ...; return true; });
断言语句会被执行; - Profile:上面的两种情况均不会发生。