背景是将接口请求的 Base URL(基础路径)和各种密钥、配置项放在环境变量中,而不是硬编码在代码里。
直接把接口写在代码里虽然省事,但属于“埋雷”行为。把接口和配置抽离到环境变量中,主要为了解决三个核心痛点:
环境隔离: 避免每次在本地开发(Dev)、测试环境(Staging)、线上生产环境(Production)切换时,都要去代码里手动改 IP 或域名。手动改不仅麻烦,还极容易发生“把测试接口打包发布到了线上”的灾难。
代码安全: 如果你的代码要托管到 GitHub/GitLab,硬编码的接口(尤其是带有内部敏感路由或含有 API Key 的代码)一旦误公开,会带来极大的安全隐患。
自动化打包(CI/CD): 配合 Jenkins、GitHub Actions 等工具自动化打包时,运维人员可以直接注入环境变量,不需要(也不应该)去修改你的 Flutter 源码。
开始ai帮我各种配置,然后想用makefile来实现,后面发现makefile需要安装各种东西,折腾很久没弄好,放弃了
后面发现Android studio 自带的就可以配置命令带参数了
打开 Edit Configurations...。
选中你的 Flutter 运行配置(或者点 + 新建一个 Flutter 配置)。
在右侧的 Additional run args(额外运行参数)输入框中,填入对应的环境配置文件:
开发环境配置: --dart-define-from-file=evn/dev.json
生产环境配置: --dart-define-from-file=evn/prod.json

image.png

image.png
在flutter 只能配置运行命令
打包命令
点击 Android Studio 顶部工具栏的 Edit Configurations...。
点击左上角的 + (Add New Configuration),选择 Shell Script。

image.png
按如下信息填写面板:
Name: Build-APK-Prod(或者叫“生产环境一键打包”)
Execute: 选择 script text。
script text: 输入完整的 Flutter 打包命令:build apk --release --dart-define-from-file=env/prod.json

image.png
第二步:如何使用它
配置好后,你会发现 Android Studio 顶部的运行下拉菜单里多了一个叫 Build-APK-Prod 的选项:
选中 Build-APK-Prod。
点击右侧绿色的 Run(三角形) 按钮。