Gradle构建类型为不同的Flavors定制

lao*_*hiv 5 android gradle android-productflavors

我正在尝试为每个gradle风格指定构建类型.所以结构将是

android {
    productFlavors {
        flavor1 {
            buildTypes {
                debug {
                    packageNameSuffix ".flavor1"
                    versionNameSuffix "flavor1"
                }
                release {
                    packageNameSuffix ".flavor1"
                    versionNameSuffix "flavor1"
                    signingConfig signingConfigs.foo
                }
            }
        }
        flavor2 {
            buildTypes {
                debug {}
                release {
                    signingConfig signingConfigs.bar
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是因为我有一些功能只适用于一种风格,但后来我需要能够为这些风格下的不同构建类型指定包名后缀和签名配置(并且flavor1-release签名配置!= flavor2-发布签名配置.

这不起作用.无论我选择哪种口味,似乎都会设置所有选项.

我不确定如何解决这个问题.我已经尝试过if条件来测试当前正在运行的任务是针对flavor1还是flavor2,然后设置构建类型值,但这也不起作用.

有些东西告诉我,我正在尝试做一些不受支持的事情,需要重新考虑我的构建结构.但我想也许那里的人肯定知道.我看过Gradle文档但找不到我要找的东西.

任何帮助将非常感激.