如何使用 GCM 3.0 为我的 android 应用程序保留不同的配置
Posted
技术标签:
【中文标题】如何使用 GCM 3.0 为我的 android 应用程序保留不同的配置【英文标题】:How do i keep different configurations for my android app with GCM 3.0 【发布时间】:2015-06-17 20:19:10 【问题描述】:我想为我的调试/发布版本变体保留不同的配置,但显然,google-services.json 文件只允许一个。有没有其他选择?有没有办法保存多个文件?
【问题讨论】:
见***.com/a/31895658/3014036 【参考方案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.nameGoogleServices/)
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.nameGoogleServices/)
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。
希望这会有所帮助。
【讨论】:
每次都会对所有变体运行。对 ?没有尝试过,但尝试过类似的东西。 我需要删除 srcfrom "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】:
目前无法定义构建特定的配置。好主意,但似乎有用。
【讨论】:
以上是关于如何使用 GCM 3.0 为我的 android 应用程序保留不同的配置的主要内容,如果未能解决你的问题,请参考以下文章