我正在使用 flutter 包 dio
配置 API 端点!我有两个 API 端点:一个用于开发,另一个用于生产。我希望我的 dio
baseURL 在开发端点和生产端点之间自动切换。
就这样
Dio(
baseURL: isProduction ? productionBaseURL : developmentBaseURL
......
);
如何知道我的应用是否在 Dart 的生产环境中?
最佳答案
只需检查 kReleaseMode
全局常量。这是true
如果应用程序是在 Release模式下编译的。
或者,我建议此信息来自环境变量,以便它遵循 The 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
声明。从命令行文档中说:
Additional key-value pairs that will be available as constants from the
String.fromEnvironment
,bool.fromEnvironment
,int.fromEnvironment
, anddouble.fromEnvironment
constructors.
关于flutter - 如何知道 flutter app 是否处于生产模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73039730/