Wie füge ich meinen APK-Dateien eine Versionsnummer hinzu, indem ich das Android Gradle Plugin mit mehr als 0.14+ Versionen verwende?

8

Ich möchte, dass versionName im Namen der APK-Ausgabedateien von meinem Android-Build enthalten ist.

Es gibt eine andere Antwort , die mit Plug-in-Versionen vor Version 0.14.x funktioniert, aber sie haben einige der Datenmodelle geändert Das funktioniert nicht mehr und ich konnte nicht herausfinden, wie ich es beheben kann. Soweit ich das beurteilen kann, sollte der untere Teil des Codes funktionieren, aber der letzte Aufruf von set() scheint keine Wirkung zu haben. Es wird kein Fehler ausgegeben, aber der Wert wird auch nicht ersetzt.

%Vor%

Kann mir jemand dabei helfen?

    
Argyle 21.11.2014, 19:06
quelle

3 Antworten

23

Sie benötigen jetzt eine weitere Schleife, da jede Variante mehrere Ausgaben haben kann:

%Vor%     
kcoppock 21.11.2014, 19:10
quelle
2

Ich habe deine Antwort mit einigen Änderungen kopiert:

%Vor%

Das Wort "-assistant" steht in meinem Dateinamen vor dem Variantennamen. Beispiel Ich habe 3 Varianten

ax, bx, cx

Die Dateinamen waren in meinem Beispiel:

  • the-assistant-ax-debug.apk
  • the-assistant-bx-debug.apk
  • the-assistant-cx-debug.apk

Ich wollte die Versionsnummer vor dem Variantennamen haben. Nach dem oben genannten werden sie nun

genannt
  • the-assistant-1.0-ax-debug.apk
  • the-assistant-1.0-bx-debug.apk
  • the-assistant-1.0-cx-debug.apk

Also, gradle build fügt den Variantennamen im Dateinamen für uns hinzu.

Der $ {versionName} ist einfach "1.0". Und mir ist aufgefallen, dass beide, egal ob $ {versionName} oder $ {variant.versionName}, das selbe Ergebnis haben.

Das heißt, wenn defaultConfig {versionsname "ab"} und productFlavors {ax {versionsname "1.0"}} , $ versionName oder $ variant.versionName in der Schleife in diesem obigen Code enthält den Variantenversionsnamen "1.0"

Hoffe, das hilft someoen.

    
James Barwick 10.12.2014 08:55
quelle
1

Wenn Sie Version 3.0.0 des Plugins oder höher verwenden, müssen Sie eine kleine Änderung vornehmen:

%Vor%

Das 3.0.0-Plug-in Migrationsdokumentation sagt:

  

Wenn Sie jedes () verwenden, um durch die Variantenobjekte zu iterieren, müssen Sie all () verwenden. Das liegt daran, dass each () nur die Objekte durchläuft, die bereits während der Konfigurationszeit vorhanden sind. Diese Objekte existieren jedoch zur Konfigurationszeit nicht mit dem neuen Modell. Jedoch passt sich all () an das neue Modell an, indem es Objekte aufnimmt, während sie während der Ausführung hinzugefügt werden.

    
gnuf 24.11.2017 20:33
quelle

Tags und Links