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

Rob*_*urt 11 google-cloud-messaging

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

Mar*_* S. 18

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

特定于风味的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'
                    }
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

在没有风味的情况下(据我所知你的问题),以下/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"
                    }
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

该代码段需要在/ app目录中使用google-services-debug.json和google-services-release.json,并将其重命名并重命名为google-services.json.

希望这可以帮助.


Art*_*son 0

不,目前无法定义构建特定的配置。不过,好主意,似乎很有用。