Flutter判断区分Debug/Release/Profile模式

  • 发表于
  • flutter

 framework层已经有判断编译模式的代码了,我们直接拿来用就行.

packages/flutter/lib/src/foundation/constants.dart中有:复制成功dart

Flutter中如果需要在Debug模式下输出一些信息,或者做一些特殊的逻辑,但是Release模式下又不需要的话,就需要可以判断当前的APK或者ipa是否为debug模式.这里有两种方式可以用来判断:

使用dart.vm.product属性

dart

如果dart.vm.product属性值为true,则为Release模式,否则不是Release模式.

但是这种方式不能用来区分Debug和Profile模式.

使用断言

dart

Debug模式下,是可以使用断言功能的,但是Profile和Release包下,断言被禁用了,因此可以用来判断是否为Debug模式.

但是不能用于区分Profile模式和Release模式.

既然上面两种方法都没法区分profile模式,因此大概看了下源码:dart

从上面的代码可以看出来,我们可以使用dart.vm.profile来判断是否为profile模式.因此得出下面完整的判断方案:

完整的方案

dart