Flutter动态加载不同环境,打包不同环境apk

首先在lib建立多个main.dart,比如main_local.dart表示本地开发运行时执行的入口文件,main_develop.dartmain.dart分别表示开发环境和生产环境:

lib/
├── api/
├── main.dart
├── main_develop.dart
├── models/
├── pages/
├── utils/
└── widgets/

这样如果我们运行在本地开发,那么执行

flutter run -t lib/main_local.dart

那么如何在执行本地开发环境的时候来调用本地开发的配置呢?其实很简单,我来定义配置文件,比如utils/config.dart

enum Env {
  PROD,
  DEV,
  LOCAL,
}

class Config {
  static Env env;

  static String get apiHost {
    switch (env) {
      case Env.PROD:
        return "http://yuanxuxu.com";
      case Env.DEV:
        return "http://develop.yuanxuxu.com";
      case Env.LOCAL:
      default:
        return "http://local.yuanxuxu.com";
    }
  }
}

 其中Env就是一个环境变量,比如我们要获取api请求的地址,那么根据环境变量来获取不同的请求地址,接下来我们只要在运行的入口函数main中定义我们当前运行的环境变量,在main_local.dart中定义:

import 'package:xxx/utils/config.dart';
void main() {
  Config.env = Env.LOCAL; //设定运行环境的环境变量

  runApp(new MaterialApp(
  ...
  ));

 

本地开发环境的话我们就获取到http://local.yuanxuxu.com:

 

 HttpUtil._internal(String cookie) {
   覆盖参数
    options = new BaseOptions(
      //请求基地址,可以包含子路径
//      baseUrl: AppUrls.BASE_HOME_URL,
      baseUrl:Config.apiHost ,

 

这样就是实现了不同环境对于获取不同的配置了,如果我们现在要编译打包一个apk文件用于分发到手机上用于测试预览使用,那么可以打包一个调用develop环境配置的apk文件:

flutter build apk -t lib/main_develop.dart

打包生产配置的安装包也是一样的,直接build main.dart 文件。

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值