Flutter多环境部署配置(二)

先前写过一文【Flutter多环境部署配置】,基本满足大多情况使用,然而有没有遇到过这样的需求:

测试应用和正式应用分开不同包名、不同图标、不同API,以便能满足各种定制化要求。

那在各个平台又是怎样实现:

一、Android平台

在Android 中可以使用“风味”。以测试环境(dev)和正式环境(prod)为例,在build.gradle文件中android节点部分添加如下内容:

android {
    flavorDimensions "default"
    productFlavors{
        // 开发环境
        dev {
            dimension "default"
            applicationId "com.example.dev"
        }
        // 正式环境
        prod {
            dimension "default"
            applicationId "com.example.prod"
        }
    }
	
	defaultConfig {
        // 因为多渠道已经有包名了,此处注释掉
		// applicationId "com.example.dev"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    ...
}

然后就可以定制两个命令完成应用打包:

    "build:md-dev": "flutter build apk -t lib/environments/dev_env.dart --release --flavor dev --target-platform android-arm64",
    "build:md-prod": "flutter build apk -t lib/environments/prod_env.dart --release --flavor prod --target-platform android-arm64"
进阶配置

因为上述打包是基于系统自带的Debug版本签名打包的,不太适合正式版本上线,所以可以进一步配置:

1、在android目录下添加两个文件:keystore文件和properties.
在这里插入图片描述
其中keystore作为常见文件就不做说明了,properties内容如下(其中storeFile对应外面的keystore文件名,其它是别名和密码):

storeFile=../android.keystore
storePassword=test
keyAlias=woodstream
keyPassword=test

再在build.gradle中添加内容:

def keystorePropertiesFile = rootProject.file("./release-signing.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {
	...
    signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }

    buildTypes {
        release {
            // Signing with the debug keys for now, so `flutter run --release` works.
//            signingConfig signingConfigs.debug
            signingConfig signingConfigs.release
        }
    }
}    

这样仍用上述的两个命令打包就可以完成正式版本发布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值