How to add specific variable to a single flavor different for debug and release

235 Views Asked by At

Some help to find how to do this: I'd like to create some resValue only for 1 flavor and these resvalue must be different according to the buildtype ( and just for security generate an error if i add later a buildType and forget to manage it in my flavor)

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"
        }
    }

Thanks

1

There are 1 best solutions below

0
On

So I answer to myself. Using a mix of what I found here and there:

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

        }
    }