Как сформировать разный код для разных build variants в Android Studio?

В зависимости от варианта билда можно использовать конструкции вида

if (BuildConfig.DEBUG) {
        Timber.plant(Timber.DebugTree())
    }

Как переписать конструкцию

  private val retrofit = Retrofit.Builder()
        //.client(client) убрать в release
        .baseUrl("https://example.net/")
        .addConverterFactory(MoshiConverterFactory.create(moshi))
        .addCallAdapterFactory(CoroutineCallAdapterFactory())
        .build()

чтобы строка .client(client) входила в дебажный билд, и не входила в релиз? Может есть какие то варианты с Gradle или ProGuard?


Ответы (1 шт):

Автор решения: solru

Используйте scope-функцию apply: https://kotlinlang.org/docs/scope-functions.html#apply

private val retrofit = Retrofit.Builder().apply {
        if (BuildConfig.DEBUG) client(client)
        baseUrl("https://example.net/")
        addConverterFactory(MoshiConverterFactory.create(moshi))
        addCallAdapterFactory(CoroutineCallAdapterFactory())
    }.build()
→ Ссылка