【发布时间】: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:
AudiBentleyChevrolet
对于每种风味,我们有 2 种不同的服务器配置:
StagingProduction
当然还有两个buildTypes:
Debug-
Release。
现在,对于每个变体,我们都有不同的 REST 端点:
-
Audi-
Staging:staging.audi.com -
Production:audi-live.com
-
-
Bentley-
Staging:bentleystaging.com -
Production:bproduction.com
-
-
Chevrolet-
Staging:chev-staging.com -
Production:prod-chevy.com
-
问题来了:
现在,我们如何在 build.gragle 中同时声明 Flavor 和 Endpoint 配置,以便我们可以为上述每个客户构建两个 APK,分别使用 Staging 和 Production 配置?
类似这样的:
- 调试构建:
-
AudiStagingDebug- 客户:Audi,配置:Staging。 -
AudiProductionDebug- 客户:Audi,配置:Production。 BentleyStagingDebugBentleyProductionDebugChevroletStagingDebugChevroletProductionDebug- 发布版本:
AudiStagingReleaseAudiProductionReleaseBentleyStagingReleaseBentleyProductionReleaseChevroletStagingReleaseChevroletProductionDebug
【问题讨论】:
-
类似问题,但没有回答这个特殊情况 - stackoverflow.com/q/30660426/816416