当前位置: 首页 > news >正文

如何为 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,如下所示:

{"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 使用

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

http://www.lryc.cn/news/155722.html

相关文章:

  • 「C++程序设计 (面向对象进阶)」学习笔记・一
  • Leetcode125. 验证回文串
  • 【Yellowbrick】特征可视化分析
  • Android大厂需要刷的(999道)面试题
  • Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
  • Java设计模式:四、行为型模式-08:策略模式
  • ICCOA蓝牙数字车钥匙2.0
  • ArcGIS土地利用程度综合指数分析
  • 服务端请求伪造(SSRF)及漏洞复现
  • v-model和v-bind
  • 详细介绍 弹性盒子(display:flex)
  • Docker使用数据卷挂载进行数据存储与共享
  • [力扣146. LRU 缓存 ](https://leetcode.cn/problems/lru-cache/description/)
  • Mysql存储引擎
  • 算法通关村-----数组实现加法专题问题解析
  • 倒排表的压缩算法
  • Android studio实现自定义圆形进度条 带刻度进度条 计步效果 时速表 水波纹效果
  • 使用【宝塔+docker】在云服务器上部署基于SpringBoot 和 Dubbo RPC 的项目:踩坑记录
  • 【算法与数据结构】617、LeetCode合并二叉树
  • ffmpeg把RTSP流分段录制成MP4,如果能把ffmpeg.exe改成ffmpeg.dll用,那音视频开发的难度直接就降一个维度啊
  • 朝夕光年游戏自动化测试实践
  • 数据结构基本概念
  • 【javaweb】学习日记Day9 - Mybatis 基础操作
  • Mybatis学习|Mybatis缓存:一级缓存、二级缓存
  • 230903文本docx
  • Mysql-DML(数据处理语言)
  • 部署项目至服务器
  • OSI与TCP IP各层的结构与功能,都有哪些协议
  • 【2023年11月第四版教材】第10章《进度管理》(第三部分)
  • 【Vuex状态管理】Vuex的基本使用;核心概念State、Getters、Mutations、Actions、Modules的基本使用