在Android Gradle中为每个构建变体设置packageNameSuffix?

时间:2013-06-26 09:47:46

标签: android gradle

我们的应用程序有免费和付费版本。我们还制作品牌版本,这意味着应用程序在两个方面有所不同。

四个版本可能是:

  • The App,耐克编辑。免费
  • APP,耐克编辑。付款
  • 该应用程序,阿迪达斯编辑。付款
  • 该应用程序,阿迪达斯编辑。自由

我现在的解决方案是拥有两种构建类型,付费和免费:

  buildTypes {
        paid {
            packageNameSuffix ".paid"
        }

        free {
            packageNameSuffix ".free"
        }
    }

还有两种口味:

productFlavors{
    nike{
        packageName "com.example.theapp.nike"
    }

    adidas{
        packageName "com.example.theapp.adidas"
    }

}

出于遗传原因,我们的某个应用变体没有免费后缀,但仍可作为免费版本处理。我想要的是在buildTypes-block中设置packageNameSuffix时能够掌握构建风格。在伪代码中我想要这样的东西:

 buildTypes {
        free {
            if( buildFlavor != "nike"){
                packageNameSuffix ".free"
            }
        }
    }

有可能吗?

1 个答案:

答案 0 :(得分:2)

是。有可能的。您可以通过创建4个项目来使用它,每个项目都有一个包含单个类文件的包,该文件显示它是App1 / App2的免费/付费版本以及包含所有4个应用程序内容的库项目。