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.
Kann mir jemand dabei helfen?
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:
Ich wollte die Versionsnummer vor dem Variantennamen haben. Nach dem oben genannten werden sie nun
genanntAlso, 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.
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.