【发布时间】:2020-06-04 10:16:02
【问题描述】:
我知道可以通过buildConfigField 提供不同的参数,具体取决于构建类型,例如:
// app.gradle
buildConfigField "boolean", "ADS_ENABLED", false
buildConfigField "String", "URL", "https://host.de"
然后我可以像这样访问源代码中的这些字段:BuildConfig.ADS_ENABLED。但我需要的不是在 gradle 文件中硬编码这些值,而是在构建时通过 gradlew 命令提供它们。
类似这样的东西(这显然行不通):
./gradlew assembleQa -ADS_ENABLED=true, -URL="https://anotherhost.de"
然后能够从源代码访问这些字段。
用例是自动化,特别是在 CI 管道上有不同的作业,可以使用不同的参数组合构建 apk,而无需为每个组合创建新的构建类型。
欢迎提出其他建议。
【问题讨论】:
-
可以使用环境变量。
-
我认为you can use
-Por-D可以传入任意值(例如./gradlew assembleQa -PADS_ENABLED=true, -PURL="https://anotherhost.de")。然后,您将更改您的buildConfigField以引用那些(例如,buildConfigField "boolean", "ADS_ENABLED", System.getProperty("ADS_ENABLED"))。
标签: android gradle gitlab gitlab-ci