0

Also, ich baue eine Reihe von Anwendungen aus einer einzigen Code-Basis, und ich verwende ProductFlavors, um jede App anzupassen.Benötige ich für jedes productFlavor eine neue google-services.json?

Jede Geschmacksrichtung muss eine eigene Tracking-ID für Google Analytics haben. Daher habe ich für jede Geschmacksrichtung eine neue "google-services.json" erstellt und festgestellt, dass die Google Developer Console ein Limit hat.

Die Frage ist, wie kann ich die gleiche JSON-Datei für alle Aromen verwenden? (Jeder Geschmack hat seine eigene applicationID)

Oder was sind meine Alternativen? Ich muss nur das Analytics-Tracking funktionieren lassen, und das ist der Grund, warum ich überhaupt angefangen habe, die Datei zu verwenden.

Ich dachte über manuell jede Datei bearbeiten seine package_name und tracking_id zu ändern, aber ich bin mir nicht sicher, ob das ein gangbarer Weg für die Produktion ...

Antwort

2

Also hielt ich in sie suchen, und stellt sich heraus, Sie dies nicht tun wirklich eine neue google-services.json für jeden Geschmack benötigen.

Es scheint nicht so viel auf dem ersten intuitiv, aber wenn Sie die JSON-Datei erstellen, müssen Sie die gleichen App Namen einzustellen für alle Aromen, nur anders Paketnamen.

Zum Beispiel: Wenn Sie sich in this step befinden, lautet der App-Name MyApp und der Paketname my.app.free.

Fahren Sie bis zum Ende, wo Sie zu dem Schritt kommen, wo Sie die Datei herunterladen. Gehen Sie dann erneut zu diesem Schritt und geben Sie den gleichen Anwendungsnamen an (in diesem Beispiel MyApp), jedoch mit dem neuen Paketnamen (z. B. my.app.pro).Wenn Sie das neue google-services.json herunterladen, wird es für beide Pakete und mit verschiedenen Analysen eingerichtet.

0

Wenn jeder Geschmack seine eigenen applicationID hat und Sie eine andere Tracking ID für Google Analytics, dann müssen Sie Google-services.json für jede Geschmacksrichtung generieren.

Bitte seien Sie vorsichtig, da google-services.json unter dem App-Ordner abgelegt werden muss, müssen Sie google-services.json eines Flavor- zu App-Ordners manuell kopieren, wenn Sie den Geschmack ändern.

Hier ist meine Art und Weise, es zu tun:

Angenommen, wir haben zwei Aromen, Entwicklung und Produktion. Setzen Sie dann die Datei google-services.json für die Entwicklung in den Ordner src/development/google-services. Und für die Produktion im Ordner src/production/google-services.

enter image description here

Dann brauchen wir die Kopie Aufgabe für die Google-service.json Dateien zu konfigurieren. Legen Sie dieses Skript in Ihrem build.gradle unter dem App-Ordner ab. Für mich habe ich dieses Skript unter android {...} gestellt.

android { 
    ... 
} 

task switchToDevelopment(type: Copy) { 
    description = 'Switches to DEVELOPMENT google-services.json' 
    from "src/development/google-services" 
    include "google-services.json" 
    into "." 
} 

task switchToProduction(type: Copy) { 
    description = 'Switches to PRODUCTION google-services.json' 
    from "src/production/google-services" 
    include "google-services.json" 
    into "." 
} 

afterEvaluate { 
    processDevelopmentDebugGoogleServices.dependsOn switchToDevelopment 
    processDevelopmentReleaseGoogleServices.dependsOn switchToDevelopment 

    processProductionDebugGoogleServices.dependsOn switchToProduction 
    processProductionReleaseGoogleServices.dependsOn switchToProduction 
} 

Dieses Skript wird ausgeführt, wenn Sie den Geschmack ändern. Es wird die korrekte google-services.json eines Flavor in App-Ordners kopiert, bevor process[FlavorBuildtypes]GoogleServices ausgeführt wird. Ich hoffe es hilft! :)