Для существующего приложения, которое переходит на FireBase, я пытаюсь настроить сборку разработки и производственную сборку.Я использую два разных проекта в Firebase, и поэтому у меня есть два разных google.services.json.Я в основном следую этому примеру .
Разорванный файл Gradle, обратите внимание на buildTypes & productFlavors:
android {
compileSdkVersion 28
defaultConfig {
applicationId "nl.my_project.cwo_app"
(...)
}
buildTypes {
release {
}
debug {
applicationIdSuffix ".debug"
}
}
// This is used to ensure the right version of google-services.json is used.
flavorDimensions "version"
productFlavors {
dev {
dimension "version"
versionNameSuffix "-dev"
}
prod {
dimension "version"
versionNameSuffix "-prod"
}
}
}
dependencies {
...
}
У меня следующая структура каталогов:
app/
src/
main/
dev/
google-services.json (for dev only)
prod/
google-services.json (for prod only)
Насколько я понимаю, следует убедиться, что после того, как я соберу что-нибудь со вкусом dev, он использует google-services.json в папке dev.Но когда я собираю проект (после выбора варианта сборки, например, devDebug), он выдает ошибку о том, что идентификатор приложения не подходит.Глядя на это показывает, что на самом деле ОБА google-services.json используются.Как я могу это изменить?
Журнал сборки:
14:00:55: Executing task 'build'...
Executing tasks: [build]
> Configure project :app
> Task :app:preBuild UP-TO-DATE
> Task :app:preDevDebugBuild UP-TO-DATE
> Task :app:compileDevDebugAidl NO-SOURCE
(...)
> Task :app:processDevDebugGoogleServices
Parsing json file: E:\projecten\CWO_app\app\src\dev\google-services.json
(...)
> Task :app:processProdDebugGoogleServices FAILED
Parsing json file: E:\projecten\CWO_app\app\src\prod\google-services.json
FAILURE: Build failed with an exception.
Execution failed for task ':app:processProdDebugGoogleServices'.
> No matching client found for package name 'nl.my_project.cwo_app.debug'
Как вы можете видеть, он создает версию с applicationIdSuffix ".debug", а затем пытается сопоставить ее с файлом впапка prod, которая не использует этот идентификатор приложения.Как я могу остановить просмотр двух папок?