Условно примените плагин GMS google-services

Я был очень осторожен, чтобы не вводить зависимости Google-Android в мое приложение Android на протяжении многих лет, и у меня есть две разновидности, сохраняющие эту сегрегацию, withAmazon а также withGoogle,

app
 |_ main
 |_ test
 |_ withAmazon
 |_ withGoogle

Недавно я экспериментировал с Firebase Analytics, который во многом является продуктом только для Google OHA, и я не верю, что он предназначен для работы вне экосистемы Google (хотя есть некоторые отчеты, которые он делает). Частью установки для Firebase является применение google-services плагин.

 apply plugin: 'com.google.gms.google-services'

Тем не менее withAmazon аромат не включает google-service.json... потому что... ну, это не для Google.

app
 |_ main
 |_ test
 |_ withAmazon
    |- java
    |- AndroidManifest.xml
 |_ withGoogle
    |- java
    |- AndroidManifest.xml
    |- google-services.json

... но так как плагины Gradle, по-видимому, должны применяться в рамках всего проекта, возможно ли применить плагин gms только к одному из вариантов? Сбой сборки в сценарии, описанном выше при компиляции аромата Amazon, так как он жалуется на google-services.json не существует... что правильно.

Прямо сейчас мой обходной путь должен переместить google-services.json под app/ каталог. Задача решена. Тем не менее, это не правильно, что мое очень четкое разделение между Google и "чистой" ОС Android нарушается.

Любая помощь любезно получена.

1 ответ

Решение

Я решил эту проблему, изменив мой родительский файл build.gradle следующим образом;

if (getGradle().getStartParameter().getTaskRequests().toString().contains(withGoogleFlavor)){
    apply plugin: 'com.google.gms.google-services'
}

Теперь плагин (и связанные с ним сервисы Google Play Services) не добавляются во вкладку Amazon моего приложения. Кроме того, google-services.json теперь живет под вкусом "withGoogle".

Замечания: withGoogle это определение, определенное в другом месте со значением "withGoogle". Подтверждение: /questions/3911048/kak-primenit-plagin-tolko-k-odnomu-aromatu-v-gradle/3911060#3911060

Другие вопросы по тегам