安卓摇篮。如何将 Flavors 与 buildTypes 结合起来

kik*_*ike 8 android android-gradle-plugin android-productflavors android-build-type

我正在开发一个白色品牌的应用程序。

我们创建每个客户不同的风味并且每个客户都DebugProductionAPI的,所以我试图建立起来的摇篮。

我该怎么做?

这是我尝试过的:

buildTypes {
    debug {
        // some configurations
    }
    release {
        // some configurations
    }
}

flavorDimensions "client"
productFlavors {
    company1{
        dimension "client"
        buildConfigField("String", "BASE_URL", "\"https://app.company1/devApi/\"")
    }

    company2 {
        dimension "client"
        buildConfigField("String", "BASE_URL", "\"https://app.company2/devApi/\"")
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:我希望能够为BASE_URL每个 Flavor 和 Buildtype定义一个不同的。

风味公司1,BuildType调试

https://app.company1.com/devApi/
Run Code Online (Sandbox Code Playgroud)

Flavor company1, BuildType 发布

https://app.company1.com/prodApi/
Run Code Online (Sandbox Code Playgroud)

风味公司2,BuildType调试

https://dev.company2.com/api/
Run Code Online (Sandbox Code Playgroud)

Flavor company2, BuildType 发布

https://prod.company2.com/api/
Run Code Online (Sandbox Code Playgroud)

kik*_*ike 5

对于我的具体问题,URL 之间存在很大差异,我无法使其与 Flavors 和 BuildTypes 一起使用。

我能够通过使用特定strings.xml于每个构建变体(这是风格和构建类型的每种组合)来定义调试/生产 URL :

这些是这样做的文件夹结构:

src/flavour1Debug/res/values/strings.xml 
src/flavour1Release/res/values/strings.xml 
Run Code Online (Sandbox Code Playgroud)

src/flavour2Debug/res/values/strings.xml 
src/flavour2Release/res/values/strings.xml 
Run Code Online (Sandbox Code Playgroud)

额外:这也可用于托管不同的google-services.json文件