android 多渠道打包 一:
常见开发中会有正式环境、测试环境两种配置,可以利用 gradle 进行简单配置,区分不同环境加载的配置
defaultConfig {
applicationId "com.example.cyf.kotlin"
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName "1.0"
flavorDimensions "cyf" // 配置flavor 用于添加
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
// 配置自己的渠道
productFlavors {
guanwang { dimension 'cyf' }
guanwang2 { dimension 'cyf' }
}
根据环境更改自己配置,buildConfigField配置完成后可以通过 BuildConfig.XXX 找到对应的字段名
android.applicationVariants.all { variant ->
if(variant.flavorName == "guanwang"){
// BuildConfig 类对应生成 public static int APP_FLAVOR_NAME = 1
buildConfigField("int", "APP_FLAVOR_NAME", "1")
} else if(variant.flavorName == "guanwang2") {
buildConfigField("int", "APP_FLAVOR_NAME", "2")
}
printf("\nversionName $variant.versionName")
// 改版本名称
variant.outputs.each { output ->
if (variant.buildType.name == "debug") {
output.versionNameOverride = variant.versionName + "t"
}
}
}
如何使用android Studio 直接运行对应的渠道
对应生成BuildConfig类
public final class BuildConfig {
public static final boolean DEBUG = false;
public static final String APPLICATION_ID = "com.example.cyf.kotlin";
public static final String BUILD_TYPE = "release";
public static final String FLAVOR = "guanwang";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
// Fields from the variant
public static final int APP_FLAVOR_NAME = 1;
// Fields from build type: release
public static final boolean LOG_DEBUG = false;
}