首页 > 解决方案 > 如何将特定变量添加到不同的调试和发布风格

问题描述

一些帮助找到如何做到这一点:我想创建一些 resValue 仅用于 1 风味,这些 resvalue 必须根据 buildtype 不同(并且只是为了安全,如果我稍后添加 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"
        }
    }

谢谢

标签: androidgradleandroid-productflavorsandroid-build-type

解决方案


所以我回答自己。混合使用我在这里和那里找到的东西:

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

        }
    }

推荐阅读