2015-06-17 3 views

risposta

0

No, non è possibile definire configurazioni specifiche per la build in questo momento. Buona idea, sembra qualcosa di utile.

17

Sto usando questa soluzione alternativa per risolvere un problema simile con i sapori di compilazione.

Il sapore specifico google-service.json file sono memorizzati sotto /app/src/{flavour-name}/google-service.json. Per copiare questo al /app dir il seguente codice può essere aggiunto al file /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' 
        } 
       } 
      } 
     } 
    } 

In assenza di sapori (come ho capito la tua domanda) il seguente /app/build.gradle frammento di codice ha fatto il lavoro in un androide progetto di test in 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" 
        } 
       } 
      } 
     } 
    } 

il frammento si aspetta un google-servizi-debug.json e un google -services-release.json nella tua /app dir e lo copia e lo rinomina in google-services.json.

Spero che questo aiuti.

+1

questo verrà eseguito per tutte le varianti ogni volta. Destra ? non l'ho provato ma ho provato cose del genere. –

+1

Avevo bisogno di rimuovere il primo/prima src 'da" src/$ {variant.flavorName} "' ma altrimenti @MartinS la tua soluzione è semplicemente fantastica. –

+1

dovrebbe essere da "src/$ {variant.flavorName}", non da "/src/${variant.flavorName}". Si prega di verificare – User9527