Несколько Gradle productFlavors

Я работаю над приложением Android с двумя скинами и двумя видами сборок:

productFlavors {
   Staging {
     dimension "server"
     buildConfigField 'String', 'API', "the staging API URL"
   }

   Production {
     dimension "server"
     buildConfigField 'String', 'API', "the production API URL"
   }

   SkinOne {
     dimension "skin"
     // Use default API URL
   }

   SkinTwo {
     dimension "skin"
     // Set a specific staging/production API URL
     // if buildVariant.contains("Staging") -> set staging URL
     // else if buildVariant.contains("Production") -> set production URL
   }
}

Проблема в том, что я хочу изменить строку API, когда я выбираю вариант сборки с помощью SkinTwo.

Возможно ли это в Gradle или мне нужно исправить это в классе BuildConfig?

Я уже пробовал это variantFilter но это не работает

1 ответ

Решение

Я уже исправил это:

productFlavors {
   Staging {
     dimension "server"
   }

   Production {
     dimension "server"
   }

   SkinOne {
     dimension "skin"
   }

   SkinTwo {
     dimension "skin"
   }
}

applicationVariants.all { variant ->
    if (variant.getName().contains("StagingSkinOne")) {
        variant.buildConfigField 'String', 'API', "staging URL"
    } else if (variant.getName().contains("ProductionSkinOne")) {
        variant.buildConfigField "String", "API", "production URL"
    } else if (variant.getName().contains("StagingSkinTwo")) {
        variant.buildConfigField "String", "API", "the specific staging URL"
    } else if (variant.getName().contains("ProductionSkinTwo")) {
        variant.buildConfigField "String", "API", "the specific production URL"
    }
}
Другие вопросы по тегам