Gradle: Multi-Dimension Flavor ApplicationId

8

Ich habe ein relativ kompliziertes Projekt, das zwei Flavor-Dimensionen für jede App benötigt. Ich habe es im folgenden Beispiel viel einfacher umgeschrieben:

%Vor%

Ich möchte für jede Variante eine andere applicationId einstellen können, zB: squareblue hätte eine andere applicationId als circleblue. Ich kann die Anwendungs-ID nicht in der Farbdimension festlegen, da dies für jede Form gleich ist. Ich müsste 6 verschiedene ApplicationIds im obigen Beispiel haben. Diese Ids folgen auch keinem Muster, sie könnten alles sein.

Ich habe die Antwort hier gesehen: Wie kann ich für jede Geschmackskombination verschiedene Anwendungs-IDs mit flavourDimensions setzen? , aber das würde bedeuten, dass ich es manuell einrichten muss, was aufgrund der Anzahl der Varianten (1000s) für mein Projekt nicht durchführbar ist.

Was ich wirklich tun möchte, ist, zwei Anwendungs-IDs auf die Farbdimension zu setzen, dann wählt es die richtige, abhängig von der Formdimension, wenn es erstellt wird. Ich habe versucht, Variablen zu definieren, aber hatte damit keinen Erfolg, sie werden nur von der letzten Variante überschrieben.

    
David Scott 28.10.2014, 15:39
quelle

3 Antworten

0

Ich habe eine Lösung gefunden, die aus diesem Beispiel folgt: Gradle Android Plugin - hinzufügen benutzerdefinierte Geschmack Attribut?

Wenn Sie eine Klasse wie diese zu Ihrer Gradle-Datei hinzufügen, können Sie einem productFlavor

benutzerdefinierte Attribute hinzufügen %Vor%

Sie fügen das dann jeder Erweiterung hinzu, indem Sie den folgenden Code am Anfang Ihres android { } -Abschnitts hinzufügen

%Vor%

Dann können Sie in Ihrem Produktgeschmack die Werte für jeden Formtyp festlegen

%Vor%

Dann fügen Sie nach dem Abschnitt productFlavors { } Folgendes hinzu:

%Vor%

Dies ist vielleicht nicht der eleganteste oder effizienteste Weg, um es zu erreichen, aber es funktioniert perfekt für mich. Jetzt kann ich alle meine IDs im Abschnitt productFlavor hinzufügen und dann legt der variantFilter die richtige applicationId fest, abhängig von der ersten Variante.

    
David Scott 29.10.2014, 10:41
quelle
0

Gradle hat eine Extras-Eigenschaft eingebaut, damit Sie es schaffen können Tun Sie dies, ohne eine Klasse zu definieren.

Sieht so aus, könnte einen oder zwei Tippfehler gemacht haben:

%Vor%     
Chris 16.06.2017 01:42
quelle
0
%Vor%     
Aldo Infanzon 16.06.2017 01:57
quelle