如何为 Flutter 应用程序创建环境变量

我们为什么需要环境变量?

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

配置

  • 在根项目中创建一个名为 .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,如下所示:

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');

您可以创建一个返回静态环境变量的类(或者您也可以用自己的方法来实现),它看起来像这样

dart 复制代码
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 使用

您的机密数据现在安全了!🎉


原文:blog.nonstopio.com/how-to-crea...

相关推荐
程序员老刘·17 小时前
Flutter 3.44 更新要点:很重要但暂时先别升级
flutter·ai编程·跨平台开发·客户端开发
用户862841295494417 小时前
Flutter rxflare 计算属性 computed:自动依赖追踪 + 缓存(超实用)
flutter
用户862841295494417 小时前
Flutter rxflare 性能测试(最终推荐版):1000 列表极致优化・官方最佳写法
flutter
用户862841295494417 小时前
Flutter rxflare 响应式编程:.obs + Rx 组件极简实战
flutter
用户862841295494417 小时前
Flutter rxflare 响应式进阶:Map/List 精准字段更新(高性能实战)
前端·flutter
King老师19 小时前
Flutter 视频代理完全教程
flutter·音视频
恋猫de小郭19 小时前
AI 时代,谷歌都在 Android 官方做了哪些支持?
android·前端·flutter
愚者Pro1 天前
Flutter Widget组件学习(专为 Uniapp 转 Flutter 定制)
vue.js·学习·flutter·uni-app
Flynt1 天前
升级Flutter 3.44,我踩了HCPP和AGP 9的坑
android·flutter·dart
程序员老刘1 天前
Flutter 3.44 更新要点:很重要但暂时先别升级
flutter·ai编程·客户端