Android Gradle - 在特定的productFlavor上添加packageNameSuffix

Ser*_*ici 6 android gradle android-gradle-plugin

我有一个Gradle Android项目,使用此产品组和Flavors配置:

/*
 * Define different flavor groups
 */
flavorGroups 'market', 'version'

/*
 * Defile product flavors
 */
productFlavors {

    amazon {
        flavorGroup 'market'
    }

    google {
        flavorGroup 'market'
    }

    flav1 {
        flavorGroup 'version'
        packageName 'com.company.flav1'
    }

    flav2 {
        flavorGroup 'version'
        packageName 'com.company.flav2'
    }

    flav3 {
        flavorGroup 'version'
        packageName 'com.company.flav3'
    }
}

// .. Other stuff
Run Code Online (Sandbox Code Playgroud)

它很棒.所有源和资源都正确合并.但由于特定原因,我需要包后缀.amzamazon产品风味.我怎样才能做到这一点?

我试过这种方式:

amazon {
    flavorGroup 'market'
    packageNameSuffix '.amz'
}
Run Code Online (Sandbox Code Playgroud)

gradle抛出一个例外.

Xav*_*het 11

目前这是不可能的.packageNameSuffix是Build Type的一个属性.

我想提供一种方法来定制给定变体的ProductFlavor值(即所有风味维度和构建类型的给定组合),但目前不可能.

您可以使用"amzRelease"构建类型来扩展现有版本构建类型并添加后缀,而不是新版本的大小.

如果您当前的"亚马逊"风味更多(配置versionCode/Name/etc ...),它将无法正常工作.然后,您可以使用亚马逊风味和amzRelease构建类型.它会创建比你需要的更多的变种,但它会有效,直到我们有更好的.