问题描述
一些帮助找到如何执行此操作的方法: 我只想为1种口味创建一些resValue,并且这些resvalue必须根据构建类型而有所不同 (并且出于安全考虑,如果以后添加buildType并忘记以我的风格进行管理,则会产生错误)
productFlavors{
lite{
dimension "default"
applicationIdSuffix ".lite"
//// HOW TO DO THIS ?
if(buildTypes.debug){
def banner = "my test id"
resValue "string","ad_view_banner_footer",banner
}
else if(buildTypes.release){
def banner_footer = "my real id"
resValue "string",banner_footer
}
else "GENERATE ERROR UNKNowN BUILDTYPES"
/// Thanks
}
full{
dimension "default"
applicationIdSuffix ".full"
}
}
谢谢
解决方法
所以我回答自己。混合使用我在这里和那里发现的东西:
flavorDimensions "default"
productFlavors{
lite{
dimension "default"
applicationIdSuffix ".lite"
def application_id = "my application id"
manifestPlaceholders = [ad_view_application_id:application_id]
}
full{
dimension "default"
applicationIdSuffix ".full"
}
}
variantFilter { variant ->
if(variant.name.startsWith(productFlavors.lite.name)){
def buildType;
def ad_view_banner_footer;
if(variant.buildType.name == buildTypes.release.name){
buildType = buildTypes.release;
ad_view_banner_footer = "my banner id"
}
else if(variant.buildType.name == buildTypes.debug.name){
def banner = "ca-app-pub-3940256099942544/6300978111"
def interstitial = "ca-app-pub-3940256099942544/1033173712"
def interstitial_video = "ca-app-pub-3940256099942544/8691691433"
def rewarded_video = "ca-app-pub-3940256099942544/5224354917"
def native_advanced = "ca-app-pub-3940256099942544/2247696110"
def native_advanced_video = "ca-app-pub-3940256099942544/1044960115"
buildType = buildTypes.debug;
ad_view_banner_footer = banner;
}
else throw new Exception("unknown buildType");
buildType.resValue "string","ad_view_banner_footer",ad_view_banner_footer
}
}