如何使用GCM 3.0为我的Android应用程序保留不同的配置

时间:2015-06-17 20:19:10

标签: google-cloud-messaging

我想为我的调试/发布版本变体保留不同的配置,但显然,google-services.json文件只允许一个。还有其他选择吗?有没有办法保存几个文件?

2 个答案:

答案 0 :(得分:18)

我正在使用此解决方法来解决类似构建风格的问题。

特定于风格的 google-service.json 文件存储在 / app / src / {flavor-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 studio测试项目中完成了这项工作:

    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"
                    }
                }
            }
        }
    }

该代码段需要在 / app 目录中添加 google-services-debug.json google-services-release.json 将其复制并重命名为 google-services.json

希望这有帮助。

答案 1 :(得分:0)

目前还没有办法定义特定于构建的配置。不过好主意似乎有用了。