【问题标题】:Gradle: Multiple Flavors, each having both Staging & Production endpointsGradle:多种口味,每种口味都有暂存和生产端点
【发布时间】:2018-07-13 08:16:42
【问题描述】:

大多数情况下,我们通过风味配置中的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
    • Production : audi-live.com
  • Bentley
    • Stagingbentleystaging.com
    • Productionbproduction.com
  • Chevrolet
    • Stagingchev-staging.com
    • Productionprod-chevy.com

问题来了:

现在,我们如何在 build.gragle 中同时声明 Flavor 和 Endpoint 配置,以便我们可以为上述每个客户构建两个 APK,分别使用 StagingProduction 配置?

类似这样的:

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

【问题讨论】:

标签: android gradle


【解决方案1】:

你看过风味维度吗?在我看来,documentation 并不是很清楚。但是这一系列文章可能会有所帮助,尤其是:Advanced Android Flavors Part 2 — Enter Flavor Dimensions

【讨论】:

  • 已经检查了风味尺寸。当然,我们可以添加一个“服务器”维度,但它不允许为每个 flavorDimension 构建变体提供暂存/生产链接。
  • 无论如何感谢文章链接,它为可能的解决方案提供了一些启示,我会检查并回来。
猜你喜欢
  • 2016-02-01
  • 2017-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多