2017-08-23 1 views
1

Ich möchte veröffentlichen App mit einem Klick in Android Studio.Wie Android-Projekt von Gradle Task synchronisieren?

Und ich habe drei Aufgaben: Erhöhungs-Version, Build-App, und veröffentlichen-App:

increaseVersionCode assembleRelease crashlyticsUploadDistributionRelease 

Die Aufgabe increaseVersionCode (meine eigenen) erhöht nur version in build.gradle, aber nach, dass die Aufgabe assembleRelease läuft mit dem vorherigen Wert von versionCode (nicht inkrementiert). Endlich (nach allen 3 Aufgaben), habe ich versionCode in build.gradle erhöht und veröffentlichte App, aber mit altem versionCode.

Ich denke, ich sollte "Sync Project" nach increaseVersionCode ausführen. Aber ich weiß nicht, wie ich es mit Gradle machen soll.

Ist es möglich, "Sync Project" von Android Studio von grdle Task ausführen?

Quelle von increaseVersionCode:

import java.util.regex.Pattern 
task('increaseVersionCode') << { 
    def buildFile = file("build.gradle") 
    def pattern = Pattern.compile("versionCode\\s+(\\d+)") 
    def manifestText = buildFile.getText() 
    def matcher = pattern.matcher(manifestText) 
    matcher.find() 
    def versionCode = Integer.parseInt(matcher.group(1)) 
    def manifestContent = matcher.replaceAll("versionCode " + ++versionCode) 
    buildFile.write(manifestContent) 
} 

UPD, ANTWORT

Wir brauchen Befehl in zwei bash aufzuspalten Befehle:

./gradlew increaseVersionCode && ./gradlew assembleRelease crashlyticsUploadDistributionRelease 

Mit Android-Studio Plugin BashSupport wir können Bash-Skripte aus dem Studio ausführen. Also müssen wir diesen Befehl in eine Datei einfügen und mit Android-Studio ausführen. Danke an @ k3b.

+0

Wie erhöhen Sie den Versionscode und wie versuchen Sie, es in Ihrer Build-Aufgabe zu verwenden? –

+0

@ lu.koerfer ist es einfach durch regex ersetzen. Ich habe Quellcode der Aufgabe angefügt. – comm1x

Antwort

1

Hinweis: Gradle-Skripte werden kompiliert und nicht interpretiert.

Gradle kompiliert alle Build-Dateien und führt dann den Build aus. Es merkt nicht, dass eine der eigenen Build-Dateien nach dem Build-Compile geändert wurde, so dass die App mit den alten Versionsinformationen erstellt wird.

ich weiß donot, ob es möglich ist gradle zu sagen, den Build-Skript neu zu erstellen oder eine Unter gradle mit einem frisch kompilierten Build-Skript

vielleicht ausführen können Sie eine Batchdatei erstellen, die Sie von Android Studio ausführen können und dass hängt nicht von android-stuidio-bauen so donot haben Sie die "sagen android Studio" Ausgabe:

  • gradlew increaseVersionCode
  • rem einen zweiten Anruf an gradlew sollte das Build-Skript
  • neu kompilieren Gradlew sauber assembleRelease crashlyticsUploadDistributionRelease
+0

Ja, Sie haben Recht. Der Befehl in zwei Befehle aufteilen funktioniert gut: './gradlew increaseVersionCode && ./gradlew assemblyRelease crashlyticsUploadDistributionRelease'. Wir müssen diesen Befehl nur an Hotkey oder etwas anderes binden. Vielen Dank. – comm1x

Verwandte Themen