【问题标题】:How do i keep different configurations for my android app with GCM 3.0如何使用 GCM 3.0 为我的 android 应用程序保留不同的配置
【发布时间】:2015-06-17 20:19:10
【问题描述】:

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

【问题讨论】:

标签: google-cloud-messaging


【解决方案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 代码 sn-p 在 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"
                    }
                }
            }
        }
    }

sn-p 需要一个 google-services-debug.json 和一个 google-services-release.json 在你的 /app dir 并将其复制并重命名为 google-services.json

希望这会有所帮助。

【讨论】:

  • 每次都会对所有变体运行。对 ?没有尝试过,但尝试过类似的东西。
  • 我需要删除 src from "src/${variant.flavorName}" 之前的第一个 / 否则 @MartinS 你的解决方案简直太棒了。
  • 它应该来自“src/${variant.flavorName}”,而不是来自“/src/${variant.flavorName}”。请验证
  • 我可以确认第一个 / 必须删除。对我来说,它可以与 Gradle 1.3.1 和 Play Services 插件 1.3.1 一起正常工作,但是在将两者都更新到 1.5.0 时,显示以下错误:File google-services.json is missing from module root folder. The Google Services Plugin cannot function without it
  • @AndroidGecko 是的,如果你删除第一个斜杠,它会起作用:from "/src/${variant.flavorName}" 变为 from "src/${variant.flavorName}"
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2020-07-06
    • 1970-01-01
    相关资源
    最近更新 更多