我正在使用Flutter包dio
配置API端点! 我有两个API端点:一个用于开发,另一个用于生产。 我希望我的dio
baseURL可以在开发和生产端点之间自动切换。
就像这样:
Dio(
baseURL: isProduction ? productionBaseURL : developmentBaseURL
......
);
如何在Dart中判断我的应用程序是否处于生产环境?
我正在使用Flutter包dio
配置API端点! 我有两个API端点:一个用于开发,另一个用于生产。 我希望我的dio
baseURL可以在开发和生产端点之间自动切换。
就像这样:
Dio(
baseURL: isProduction ? productionBaseURL : developmentBaseURL
......
);
只需查看kReleaseMode
全局常量。如果应用程序是在发布模式下编译的,则其值为true
。
或者,我建议将此信息来自环境变量,以便遵循Twelve-Factor App中的一个要点(即Config)。 要获取并检查,请执行以下操作。
例如:IS_PRODUCTION
系统环境变量:
final isProduction = Platform.environment['IS_PRODUCTION'] == '1';
或者,获取dart-defines
编译时环境变量:
const isProduction = String.fromEnvironment('IS_PRODUCTION') == '1';
有两种方法可以设置dart-define
:
flutter run --dart-define=IS_PRODUCTION=1
,或者;
flutter build <bundle> --dart-define=IS_PRODUCTION=1
;
<bundle>
可以是: aar
, apk
, appbundle
, bundle,
web
, 或 windows
。
请注意,dart-define
编译到应用程序本身中。这就是它们接受const
声明的原因。从命令行文档中可以看到:
附加的键值对将作为常量从
String.fromEnvironment
、bool.fromEnvironment
、int.fromEnvironment
和double.fromEnvironment
构造函数中使用。
flutter build
。