应用环境变量

借助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,而不会关心您写的值。?

随着更多用例的出现,本节将进行更新。

讨论

使用问题跟踪器报告错误和功能请求。欢迎贡献代码。

GitHub

查看 Github