Как построить два варианта сборки Android для получения двух разных URL с помощью Retrofit? - PullRequest
0 голосов
/ 07 июня 2019

Я разрабатываю приложение для Android для извлечения двух разных API Rest для двух разных вариантов сборки, использующих один и тот же источник данных. Я использую вкус продукта для варианта сборки. Но я не знаю, как настроить часть Retrofit для выбора другого API для другого варианта сборки.

Спасибо заранее

Ответы [ 2 ]

1 голос
/ 07 июня 2019

Вы можете создать BuildConfig Field , чтобы предоставить различный REST API URL в зависимости от вашего продукта вашему клиенту API:

Откройте файл build.gradle (уровень приложения) и добавьте следующие строки в свой блок Android :

    android {
        ....
        applicationVariants.all { variant ->
            def variantName = variant.flavorName
            // replace your specific flavor here instead of 'flavor1' & 'flavor2'
            if (variantName.contains("flavor1")) { 
                variant.buildConfigField 'String', "SERVER_URL", '"your_flavor_specific_url_here"'
            } else if (name.contains("flavor2")) {
                variant.buildConfigField 'String', "SERVER_URL", '"your_flavor_specific_url_here"'
            }
        }
        ....
    }

Теперь Перестройте свой проект , и тогда вы получите доступ к BuidConfig.SERVER_URL в вашем проекте, который будет отличаться в зависимости от выбранного вами вкуса продукта.

0 голосов
/ 07 июня 2019

для отладочной версии вы можете использовать

        // setting up retrofit
        .baseUrl(if (BuildConfig.DEBUG) {
            "https://debug.server"
        } else {
            "https://release.server"

        })

для вкуса, вы можете попробовать

        // setting up retrofit
        .baseUrl(if (BuildConfig.FLAVOR == "test") {
            "https://debug.server"
        } else if(BuildConfig.FLAVOR == "staging"){
            "https://staging.server"
        } else {
            "https://release.server"
        })

В этом вопросе описывается, как определить вкусы

...