Android 不同flavor及不同buildType配置不同的buildConfigField

項目中有這個需求:

不同變體flavor對應的不同buildType要配置不同的buildConfigField 字段。

如A變體的debug和release中分別設置不同的應用名稱,或者設置不同的接口地址等等。

我們在flavor中默認配置debug下的buildConfigField,在applicationVariants.all中對應做release的處理,當buildVariant選了debug/release時就會根據配置去設置不同的字段了。

//以下配置都在build.gradle android {}內
    //版本變體配置
    productFlavors {
        A {
            applicationId "com.example.a"
            buildConfigField 'String', 'APP_TITLE', '"應用A Debug"'
        }
        B {
            applicationId "com.example.b"
            buildConfigField 'String', 'APP_TITLE', '"應用B Debug"'
        }
    }
    buildTypes {
        release {
            ...
        }
        debug {
            ...
        }
    }

...

    //修改打包名稱、字段
    android.applicationVariants.all { variant ->
        variant.outputs.all { output ->
            def buildTypeName = ""
            def flavorName = variant.flavorName.capitalize()

            if (variant.buildType.name == "release") {
                buildTypeName = "Release"
            } else {
                buildTypeName = "Debug"
            }

            if (flavorName == "A" && buildTypeName == "Release") {
                variant.buildConfigField "String", "APP_TITLE", '"應用A Release"'
            }
            output.outputFileName = "${flavorName}_${buildTypeName}.apk"
        }
    }

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章