应用环境变量
借助App env,您现在可以轻松地在Flutter和移动Android和iOS代码之间共享全局变量。
支持的平台
- Android
- iOS
关于
在此包出现之前,当您想使用环境变量时,您会在.env文件中编写所有变量,然后为两个系统再次编写它们,无论是为Android系统编写strings.xml,还是为iOS系统编写xcconfig文件以使用xCode。
这会浪费您大量的时间,而且您会不断地重复数据,因此错误率会增加。
但请放心,App env的出现是为了轻松解决这个问题……您只需要4个步骤……
- 将包添加到您的项目中。
- 运行包。
- 在
.env文件中添加您的变量。 - 再次运行包。
然后,您会注意到包已经完成了所有工作,您可以无忧无虑地共享所有变量了。
用法
正如我们之前提到的,有四个简单的步骤可以让您轻松共享变量。我们将在下面详细解释它们。
1-您已将包添加到您的项目 <包添加代码>
app_env: current_version
2-您可以使用以下命令运行该包
dart run app_env
3-您会注意到该包已在项目中的lib文件夹同级目录添加了一个.env文件。
打开文件后,您会发现一些示例文本变量。您可以删除它们并添加您自己的变量?
4-再次使用上述命令运行包。
完成了……就是这样。
Flutter用法
目前,该包不提供读取.env文件的功能,但有很多方法可以读取该文件,例如通过
- 使用正则表达式并编写自己的代码来提取键和值。
- 或者,您可以轻松使用另一个读取
.env文件的包,例如flutter_dotenv。
Android用法
执行完上述步骤后,转到路径android/app/src/main/res/values/,您会注意到有一个strings.xml文件。
打开文件后,您会发现.env文件中定义的所有变量,并且该包已自动添加了它们。
每次添加新变量或修改现有文件并运行包时,它都会自动修改strings.xml文件。
因此,您可以轻松地在所有与Android相关的XML文件、Java或Kotlin文件中使用strings.xml文件中的变量。
iOS用法
执行完上述步骤后,转到路径ios/Flutter/,您会注意到有一个AppEnvConfig.xcconfig文件。
打开文件后,您会发现.env文件中定义的所有变量,并且该包已自动添加了它们。
我们所要做的就是按照下图所示的路径创建AppEnvConfig.xcconfig文件。
要创建文件,我们必须打开Xcode,添加一个新文件,如下图所示。 
- 文件名必须是AppEnvConfig.xcconfig
- 文件路径必须是ios/Flutter/AppEnvConfig.xcconfig
剩下的就非常简单了,这样您就可以轻松地在iOS中使用了……您只需要像图片中那样打开Runner。
通过Configurations,您将选择AppEnvConfig.xcconfig文件,然后您就可以轻松地转到Targets中的Build Settings选项卡,如下图所示。
然后搜索User以访问User-Defiend,您会发现我们在.env文件中添加的所有变量现在都可以在xCode中找到,并且您现在可以轻松地在iOS中使用它们。
用例
在这里,我们将进行一些实验来回答您心中的一些问题。
- 如果我在strings.xml文件或AppEnvConfig.xcconfig文件中添加了一个不在.env文件中的变量并运行该包,会发生什么?
— strings.xml: 没什么大不了的,一切都会好起来的……该包不会从头开始重写文件,只会修改它,因此它会修改文件,而您所有其他变量都会正常。
— AppEnvConfig.xcconfig: 在这种情况下,该包不会修改文件,但每次都会用.env文件中的所有数据覆盖它,因此不在.env文件中的任何变量都将被删除。
- 如果我只更改strings.xml中的变量值而不更改
.env文件中的值,会发生什么?
该包将把值写入.env,而不会关心您写的值。?
随着更多用例的出现,本节将进行更新。
讨论
使用问题跟踪器报告错误和功能请求。欢迎贡献代码。








