Как сохранить различные настройки для моего приложения для Android с помощью GCM 3.0

Я хочу сохранить разные конфигурации для вариантов сборки debug/release, но, видимо, файл google-services.json разрешает только один. Есть ли альтернатива? Есть ли способ сохранить несколько файлов?

Ответ 1

Я использую это обходное решение для решения аналогичной проблемы со сборкой.

Конкретные файлы google-service.json хранятся в папке /app/src/ {flavour-name}/google-service.json. Чтобы скопировать это в каталог /app, в файл /app/build.gradle можно добавить следующий код:

    gradle.taskGraph.beforeTask { Task task ->
        if(task.name ==~ /process.*GoogleServices/) {
            android.applicationVariants.all { variant ->
                if(task.name ==~ /(?i)process${variant.name}GoogleServices/){ 
                    copy {
                        from "/src/${variant.flavorName}"
                        into '.'
                        include 'google-services.json'
                    }
                }
            }
        }
    }

В отсутствие вкусов (как я понимаю ваш вопрос) следующий фрагмент кода /app/build.gradle выполнил эту работу в проекте тестирования студии Android:

    gradle.taskGraph.beforeTask { Task task ->
        if(task.name ==~ /process.*GoogleServices/) {
            android.applicationVariants.all { variant ->
                if(task.name ==~ /(?i)process${variant.name}GoogleServices/){
                    copy {
                        from '.'
                        into '.'
                        rename { String fileName ->
                            fileName.replace("google-services-${variant.name}.json", 'google-services.json')
                        }
                        include "google-services-${variant.name}.json"
                    }
                }
            }
        }
    }

Фрагмент ожидает от google-services-debug.json и google-services-release.json в вашем /app каталоге и копирует его и переименовывает его в google-services.json.

Надеюсь, что это поможет.

Ответ 2

Нет никакого способа определить конкретные конфигурации конфигурации на данный момент. Хорошая идея, кажется, что-то полезное.