咱们为什么须要环境变量?

次要用于存储高级秘密数据,如果泄露可能会危及您产品的安全性。这些变量本地存储在每个用户的本地零碎中,不应该签入存储库。每个用户都有这些变量的正本。

配置

  • 在根我的项目中创立一个名为 .env 的文件夹(文件夹名称由您抉择)
  • .gitignore 中增加 .env 文件夹门路为 .env/
  • .env 文件夹中增加环境文件,如 dev.jsonstaging.jsonprod.jsontesting.json 或任何你想创立的环境。

步骤

通过 CLI 设置环境变量

  • 运行命令: flutter run --dart-define-from-file=.env/dev.json

设置 VSCode 运行环境变量

  • .vscode/ 文件夹中创立 launch.json 文件,从而创立启动配置。
  • 为每个环境创立配置,并在 toolArgs 字段中增加选项 --dart-define-from-file=.env/dev.json,如下所示:
{    "version": "0.2.0",    "configurations": [        {            "name": "mobile_app dev",            "request": "launch",            "type": "dart",            "toolArgs": [                "--dart-define-from-file=.env/dev.json"            ]        },        {            "name": "mobile_app staging",            "request": "launch",            "type": "dart",            "toolArgs": [                "--dart-define-from-file=.env/staging.json"            ]        },        {            "name": "mobile_app prod",            "request": "launch",            "type": "dart",            "toolArgs": [                "--dart-define-from-file=.env/prod.json"            ]        },        {            "name": "mobile_app testing",            "request": "launch",            "type": "dart",            "toolArgs": [                "--dart-define-from-file=.env/testing.json"            ]        }    ]}

设置从Android Studio运行的环境变量

  • 单击edit configurations关上配置

  • 单击左上角的 + 并从下拉列表中抉择 flutter 以增加多个 flutter 配置

  • 在“Dart entrypoint”中,将值设置为main.dart文件的门路
  • 在“Additional run args”字段中增加 --dart-define-from-file=.env/dev.json
  • 反复上述第 2、3 和 4 步,为多个环境创立多个配置

应用环境变量

要应用环境变量,请应用 String.fromEnvironment('clientId');

您能够创立一个返回动态环境变量的类(或者您也能够用本人的办法来实现),它看起来像这样

class Environment {  static const String env = String.fromEnvironment('env');  static const String clientId = String.fromEnvironment('clientId');  static const String clientSecret = String.fromEnvironment('clientSecret');  static const String callbackUrl = String.fromEnvironment('callbackUrl');}

并在代码中作为 Environment.clientId 应用

您的秘密数据当初平安了!