我在我的应用中为构建变体创建了4种不同的风格。 我在我的应用 build.gradle。中的配置中添加了版本和后缀。以下是代码:
productFlavors {
qa {
applicationIdSuffix ".qa"
versionCode 1
versionName "1.0"
//manifestPlaceholders = [application: ".utils.Application"]
}
demo {
applicationIdSuffix ".demo"
versionCode 1
versionName "1.0"
//manifestPlaceholders = [application: ".utils.Application"]
}
dev {
versionCode 1
versionName "1.0"
//manifestPlaceholders = [application: ".utils.Application"]
//signingConfig signingConfigs.release
}
uat {
applicationIdSuffix ".uat"
versionCode 1
versionName "1.0"
//manifestPlaceholders = [application: ".utils.Application"]
}
}
在我的应用中,我使用文件 APIAddresses.java 来根据环境选择要点击的网址。 有没有什么方法可以只使用 build.gradle 中的所有源代码中的此文件来配置构建变体的URL?
可以为每个构建变体创建此文件的不同副本,类似于此。
productFlavors {
qa {
applicationIdSuffix ".qa"
versionCode 1
versionName "1.0"
APIAddresses_QA
}
demo {
applicationIdSuffix ".demo"
versionCode 1
versionName "1.0"
APIAddresses_DEMO
}
}
谢谢!
答案 0 :(得分:0)
是的,您可以为所有变体使用一个版本的APIAddresses.java文件。
在build.gradle中,添加
flavorDimensions "main"
将您的APIAddresses.java文件放在app \ src \ main目录中。
在您的代码中,您可以使用变量
为每个变体生成不同的URL BuildConfig.FLAVOR
答案 1 :(得分:0)
如果您不想在课程中添加大量if-else
条件,则可以为每种风格添加新的buildConfigField
:
productFlavors {
qa {
applicationIdSuffix ".qa"
versionCode 1
versionName "1.0"
buildConfigField "String", "SERVER_URL", '"https://server1.com"'
}
demo {
applicationIdSuffix ".demo"
versionCode 1
versionName "1.0"
buildConfigField "String", "SERVER_URL", '"https://server2.com"'
}
...
}
之后你可以在Java端调用BuildConfig.SERVER_URL
,根据每种风格,它应该在我的示例中返回正确的URL