Okay, ich habe das YouTube-Video mit Xavier Ducrohet über das neue Buildsystem für Android angesehen. Ich bin sogar auf Android Studio umgestiegen und bin damit zufrieden. Jetzt muss ich die Build-Regeln anpassen, um die Dinge so zu machen, wie ich es möchte, und eine davon ist die automatische Einstellung von codeVersion
und codeName
in der Manifest-Datei.
Xavier zeigt den Anfang, wie man das in einer seiner Folien macht:
%Vor%Könnte also jemand so freundlich sein, mir eine gute Ressource zum Ausfüllen der Punkte zu zeigen?
Um genauer zu sein, möchte ich ein Skript wie git describe --dirty | sed -e 's/^v//'
ausführen, um versionName
und git tag | grep -c ^v
zu ermitteln, um versionCode
zu erhalten.
Danke
Aktualisieren
Ich habe das folgende Skript gradle.build
ohne Erfolg ausprobiert. Es ist in Ordnung, aber der Versionsname auf der Seite "App-Info" meiner installierten Apps ändert sich nicht.
Wenn ich die config versionName getVersionName()
durch versionName 'Some Text'
ersetze, funktioniert es und der Build Name wird Some Text
in der App Info. Warum funktioniert meine Funktion getVersionName nicht?
Update 2
Immer noch nicht funktioniert - aber fast!
Shell-Skript:
%Vor%Dies funktioniert, und die Protokollzeile bestätigt, dass das Skript beim Erstellen des Projekts mehrmals aufgerufen wird. Aber der versionName ist immer noch leer. Ich vermute, dass es die Gradle-Seite der Dinge ist, die immer noch nicht stdout wird.
%Vor%Nach der Jagd habe ich endlich eine Lösung dafür gefunden.
Groovy, die Sprache der Datei build.gradle
, ermöglicht die einfache Ausführung von Befehlen. Hier ist die Lösung:
file () sollte verwendet werden, um auf alle Dateien innerhalb von Gradle zu verweisen.
"<some-command".execute()
führt den Befehl aus und .text
gibt Ihnen einfachen Zugriff auf
%Code%. Ich fand, dass ich stdout
ausführen musste, um die nachfolgende Wagenrücklauf zu entfernen. Ich denke, ich hätte trim()
in meinem Skript verwenden können, aber ich denke, dass die echo -n ${VERSION}
-Methode besser ist, da sie es ermöglicht, das Skript über die Befehlszeile auszuführen.
Das Build-Skript zählt nur die Anzahl der Release-Tags von git. Wenn ich meine Releases in der Form: trim()
taggekenne, könnten die Tags, die mit einem Kleinbuchstaben 'v' beginnen, gefolgt von einer Ziffer folgen:
Bevor Sie mit dieser Konfiguration bauen, vergessen Sie nicht, mindestens ein Release-Tag zu erstellen. Ich markiere direkt am Anfang des Projekts auf folgende Weise:
%Vor% Sie haben die Beispielkommentare verpasst. versionName getVersionName.output()
sollte funktionieren.
BEARBEITEN: Ändern Sie Ihren Aufgabencode wie folgt:
%Vor%Ich bin auch neu zu groß, es scheint, dass sie einige Bugs haben oder die Dokumentation fehlt. Da der Code, den Sie ausprobiert haben, genau aus der Probe stammt, ist sie im Dokument verfügbar.
Tags und Links gradle android-studio build.gradle