У меня есть 2 buildTypes (debug, release) и 2 productFlavors (product1, product2). Я хочу определить buildConfigField для каждого типа buildType и productFlavors. BuildConfigField - это приложение для загрузки данных с сервера, и оно изменяется для каждого продуктаFlavor и buildTypes.
Теперь у меня есть:
buildTypes {
debug {
debuggable true
}
release {
debuggable false
}
}
productFlavors {
product1 {
buildConfigField STRING, "URL_BASE", '"https://api1.release.com"'
}
product2 {
buildConfigField STRING, "URL_BASE", '"https://api2.release.com"'
}
}
Но я хочу что-то вроде этого:
buildTypes {
debug {
debuggable true
}
release {
debuggable false
}
}
productFlavors {
product1 {
debug {
buildConfigField STRING, "URL_BASE", '"https://api1.debug.com"'
}
release {
buildConfigField STRING, "URL_BASE", '"https://api1.release.com"'
}
product2 {
debug {
buildConfigField STRING, "URL_BASE", '"https://api2.debug.com"'
}
release {
buildConfigField STRING, "URL_BASE", '"https://api2.release.com"'
}
}
}
Как я могу это достичь?
Update:
Каждый URL_BASE имеет другой шаблон, поэтому я не могу группировать URL-адреса. Положительным решением является добавление базы URL-адреса 2-х ароматов в разных типах сборки и выбор правильного в аромате.
buildTypes {
debug {
debuggable true
buildConfigField STRING, API_VARIANT_PRODUCT1, '"api1.deb.com"'
buildConfigField STRING, API_VARIANT_PRODUCT2, '"api2.debug.com"'
}
release {
debuggable false
buildConfigField STRING, API_VARIANT_PRODUCT1, '"api1.release.com"'
buildConfigField STRING, API_VARIANT_PRODUCT2, '"api2.release.com"'
}
}
productFlavors {
product1 {
buildConfigField STRING, URL_BASE, '"https://" + API_VARIANT_PRODUCT1 + "/v1"'
}
product2 {
buildConfigField STRING, URL_BASE, '"https://" + API_VARIANT_PRODUCT2 + "/v1"'
}
}
}
ОБНОВЛЕНИЕ 2
Если вам нужно добавить ресурсы в gradle, например, "KEY_MAP", решение находится на этой странице .