Android端——flutter运行和打包配置多环境以及根据不同环境设置不同APP名称

首先我们在android/app/build.gradle文件夹中设置如下代码:

flavorDimensions "environment"
    productFlavors {
        dev {
            dimension "environment"
            applicationId "com.team.v1"
            versionNameSuffix "-dev"
            resValue "string", "app_name", "V1"
        }
        production {
            dimension "environment"
            applicationId "com.team2.v2"
            versionNameSuffix ""
            resValue "string", "app_name", "V1"
        }
    }

先别管啥意思,配置上再说,有问题再说,我上面是设置了两个不同环境(开发和正式)。
以上代码放在下图android层级下面,如图所示:


image.png

为了让resValue的值生效,我们需要修改清单配置文件:
如下:


image.png

那么以上针对不同环境设置不同APP名称的配置就完成了。
那么我们怎么运行呢。
我们需要修改flutter的代码,原生代码如上已经修改完成,flutter修改如下:
image.png

原有的main.dart我们可以不动,然后copy这个文件重新生成两个main文件,main_dev.dart和main_production.dart。
这些文件有啥区别呢,其实大部分都一样,他们都只是APP的入口文件,你可以像之前的main.dart文件一样在里面做不同的初始化,例如网络的初始化,开发环境和测试环境的接口请求域名的初始化。
例如我的:


image.png

image.png

至此,我们的项目工程的设置都完成了。
那么我要怎么编译和打包呢?
我以Android studio为例,如图:
image.png

点击 Edit Configurations按钮,进入如下页面:
image.png

给build flavor配置上dev,然后apply后,保存退出,你这个时候运行,那么它就是你在原生的dev配置了。
同理你可以新建运行入口文件:
image.png

点击添加,选择flutter:

然后选择Dart的入口文件,已经自定义你自己的入口名称,同时配置build flavor(这个一定写的是你在原生配置文件中的名称)


image.png

点击保存,那么你就可以选择不同的入口文件,进行运行编译了。
打包的话命令区分也是一样。
flutter build apk --release --flavor dev -t lib/main_dev.dart
 flutter build appbundle --release --flavor dev -t lib/main_dev.dart

那么完整的flutter android端的渠道打包就是如此。
写的比较糙,将就着看吧,其实上面也不是最优方案,还可以优化,有空再写优化篇,都是日常编码的一些记录。
下一篇,分享多环境配置多firebase的工程配置。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。