最近项目中,不同环境需要配置的参数越来越多,为了减少修改代码次数。研究了一下productFlavors的使用方式,总结如下
1. as3.0以上版本使用productFlavors时需要指定一个flavorDimensions,用于不同组合productFlavors。
2. 每个productFlavors中可以自定义各种变量
替换manifest中的变量需要注意,如果替换2个以上用逗号分隔。
android:name="app_id"
android:value="${id_value}" />//占位符
android:name="app_key"
android:value="${key_value}" />
flavorDimensions "api", "mode"
productFlavors {
demo {
dimension "mode"
buildConfigField("String", "HTTP_BASE", '"https://10.10.10.222/"')//在BuildConfig中添加 String类型的HTTP_BASE 字段 并赋值
buildConfigField("int", "POSITION_1", "10020")//增加 int型
resValue("string","flovor_log","this is free log")//替换 res中String里的flovor_log字段
...
}
full {
dimension "mode"
buildConfigField("String", "HTTP_BASE", '"https://api-hd-huoyun.com/"')
manifestPlaceholders = [id_value: "1234567890",key_value: "0987654321"]//替换manife中的变量
...
}
minApi24 {
dimension "api"
minSdkVersion '24'
versionCode 30000 + android.defaultConfig.versionCode//修改版本号
versionNameSuffix "-minApi24"//版本名称加后缀
...
}
minApi23 {
dimension "api"
minSdkVersion '23'
versionCode 20000 + android.defaultConfig.versionCode
versionNameSuffix "-minApi23"
...
}
minApi21 {
dimension "api"
minSdkVersion '21'
versionCode 10000 + android.defaultConfig.versionCode
versionNameSuffix "-minApi21"
...
}
}
}
参考:
转载至链接:https://my.oschina.net/ldhy/blog/1931257