首页 > 解决方案 > Flutter:使构建时环境变量可用于代码

问题描述

如何让构建时环境变量可用于 Flutter 应用程序中的代码?(我的具体用例是将应用程序版本号和提交哈希注入调试屏幕。此信息在构建时可用,但在运行时不可用)。

我曾希望能够做类似的事情:

flutter run --dart-define=APP_VERSION=0.1.2

接着,

const appVersion = String.fromEnvironment('APP_VERSION', defaultValue: 'development');

但这似乎不起作用(我使用的是 Flutter 1.12.13+hotfix.5),我不确定这是 Flutter 中支持的功能。

标签: flutterenvironment-variablescompile-time

解决方案


从 1.17 版开始,您实际上可以做到这一点。最近 beta 和 dev 频道进行了更改,允许您定义编译时变量。您也可以像这样定义多个变量

flutter run --dart-define=APP_VERSION=0.1.2 --dart-define=SOME_OTHER_VAR=SOME_OTHER_VALYE

此外,这些更改似乎是精心挑选的,因此我们很可能会在即将发布的稳定版本中看到它们(手指交叉)

更新

因此,刚刚推出了一个新的稳定版本的颤振。它包含这些变化--dart-define。所以从 1.17 开始,你可以使用这个键为你的 Flutter 项目定义编译时变量。


推荐阅读