如何将特定变量添加到不同于调试和发布的单一风格中



找到如何做到这一点的一些帮助:我想只为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", "ad_view_banner_footer", 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
}
}

最新更新