Gradle:多种口味,每种都有Staging& amp;生产终点

时间:2018-02-02 19:03:26

标签: android gradle

大多数情况下,我们通过flavor配置中的buildConfigField传递REST端点,如下所示:

buildFlavors {

   staging {
     buildConfigField "String", "SERVER_URL", "\"http://staging-server.com\""
   }

   production {
     buildConfigField "String", "SERVER_URL", "\"http://production.com\""
   }

}

这是很好理解的。

现在想象一下Car Dashboard应用程序。我们有一个项目,还有三个客户productFlavors

  • Audi
  • Bentley
  • Chevrolet

对于每种口味,我们有2种不同的服务器配置:

  • Staging
  • Production

当然还有两个buildTypes

  • Debug
  • Release

现在,对于每个变体,我们都有不同的REST端点:

  • Audi
    • Stagingstaging.audi.com
    • Productionaudi-live.com
  • Bentley
    • Stagingbentleystaging.com
    • Productionbproduction.com
  • Chevrolet
    • Stagingchev-staging.com
    • Productionprod-chevy.com

问题在于:

现在,我们如何在build.gragle中一起声明Flavors和Endpoint配置,以便我们可以为上面的每个客户构建两个APK,StagingProduction配置?

这样的事情:

  • 调试构建:
  • AudiStagingDebug - 客户:Audi,配置:Staging
  • AudiProductionDebug - 客户:Audi,配置:Production
  • BentleyStagingDebug
  • BentleyProductionDebug
  • ChevroletStagingDebug
  • ChevroletProductionDebug
  • 发布版本
  • AudiStagingRelease
  • AudiProductionRelease
  • BentleyStagingRelease
  • BentleyProductionRelease
  • ChevroletStagingRelease
  • ChevroletProductionDebug

1 个答案:

答案 0 :(得分:0)

你看过Flavor Dimensions吗?在我看来,documentation并不十分清楚。但是这一系列文章可能会有所帮助,特别是:Advanced Android Flavors Part 2 — Enter Flavor Dimensions