Kotlin build.gradle.kts配置productFlavors
说明:下文代码中出现的BuildVersion是我上一篇文章中写的依赖统一管理的引用项 依赖统一管理
进入build.gradle.kts的productFlavors 配置项
1.android目录下配置
buildFeatures.buildConfig = true
2.signingConfigs Signing与上方的BuildVersion配置一样 都是提取到了公共文件中
signingConfigs {
create("xiaomi") {
keyAlias = Signing.keyAlias
keyPassword = Signing.keyPassword
storeFile = file("xxx.jks")
storePassword = Signing.storePassword
}
create("huawei") {
keyAlias = Signing.keyAlias
keyPassword = Signing.keyPassword
storeFile = file("xxx.jks")
storePassword = Signing.storePassword
}
}
3.productFlavors
flavorDimensions.add("app-dimension")
productFlavors {
create("xiaomi") {
dimension = "app-dimension"
//需要的配置项
}
create("huawei") {
dimension = "app-dimension"
//需要的配置项
}
}
4.buildTypes
buildTypes {
release {
initWith(buildTypes.getByName("debug"))
isMinifyEnabled = false
isDebuggable = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
debug {
isMinifyEnabled = false
isDebuggable = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
完整build.gradle.kts
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}
android {
namespace = "com.example.demo"
compileSdk = BuildVersion.compileSdk
buildFeatures.buildConfig = true
defaultConfig {
applicationId = "com.example.demo"
minSdk = BuildVersion.minSdk
targetSdk = BuildVersion.targetSdk
versionCode = BuildVersion.versionCode
versionName = BuildVersion.versionName
multiDexEnabled = true
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
signingConfigs {
create("xiaomi") {
keyAlias = Signing.keyAlias
keyPassword = Signing.keyPassword
storeFile = file("xxx.jks")
storePassword = Signing.storePassword
}
create("huawei") {
keyAlias = Signing.keyAlias
keyPassword = Signing.keyPassword
storeFile = file("xxx.jks")
storePassword = Signing.storePassword
}
}
flavorDimensions.add("app-dimension")
productFlavors {
create("xiaomi") {
dimension = "app-dimension"
//需要的配置项
}
create("huawei") {
dimension = "app-dimension"
//需要的配置项
}
}
buildTypes {
release {
initWith(buildTypes.getByName("debug"))
isMinifyEnabled = false
isDebuggable = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
debug {
isMinifyEnabled = false
isDebuggable = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
buildFeatures {
viewBinding = true
}
}
dependencies {
}