Ich verwende Android Studio und muss ein Suffix an das versionNameSuffix in meiner Android build.gradle-Datei anhängen. Ich habe drei verschiedene buildTypes und muss nur die datetime an meine "Beta" -Version anhängen. Meine eigentliche Datei lautet:
defaultConfig {
versionCode 14
versionName "0.7.5"
minSdkVersion 9
targetSdkVersion 18
}
buildTypes {
beta {
packageNameSuffix ".beta"
versionNameSuffix "-beta"
signingConfig signingConfigs.debug
}
....
}
für die Prüfung und automatisches deploy, ich brauche wie eine endgültige version zu bekommen: 0.7.5-beta-build20131004
, 0.7.5-beta-build1380855996
oder so ähnlich. Irgendwelche Ideen?
android
android-studio
gradle
android-gradle-plugin
build.gradle
Rodrigo Amaro Reveco
quelle
quelle
Sie können in Ihrem build.gradle benutzerdefinierte Funktionen und Variablen definieren.
def versionMajor = 3 def buildTime() { def df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'") // you can change it df.setTimeZone(TimeZone.getTimeZone("UTC")) return df.format(new Date()) }
Dann können Sie es verwenden:
android { defaultConfig { versionName "${versionMajor}-beta-build-${buildTime()}" } }
oder wenn Sie es in Ihrem versionNameSuffix hinzufügen möchten
beta { versionNameSuffix "-beta-build-${buildTime()}" }
quelle
buildTime
wird unterstrichen: Innere Methoden werden nicht unterstützt.Vergessen Sie auch nicht, den Import als erste Zeile von Gradle hinzuzufügen:
import java.text.SimpleDateFormat; ...
quelle
for simple one row solution define this property above android section final BUILD_DATE = new Date().format('yyyy_MM_dd_HHmm') and then android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId APPLICATION_ID minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.compileSdkVersion versionName GIT_TAG_NAME versionCode GIT_COMMIT_COUNT setProperty("archivesBaseName",`enter code here` "com-appname-$BUILD_DATE-$versionName") } }
quelle
Ich bin mit Android Studio nicht vertraut, aber ich gehe davon aus, dass sich Gradle wie gewohnt verhält. Das Hinzufügen von so etwas zu Ihrer Build-Projektkonfiguration sollte den Trick tun:
allProjects { gradle.taskGraph.whenReady { taskGraph -> versionNameSuffix += '-build' + // Java/Groovy code to produce the timestamp formatted the way you want } }
quelle
Sie können testen
task timenow { println(new Date().getTime()) }
Gradle ausführen: Gradle Timenow
Siehe Einzelheiten. Platziere es auf dem obersten Build
ext { configuration = [ appName : "vBulletin", applicationId : "com.vbulletin", minSdkVersion : 14, targetSdkVersion : 19, compileSdkVersion: 19, versionCode : 6, versionName : "1.3.6", buildToolsVersion: "25.0.0", ] } task createBrand { appConfig.applicationId = appConfig.applicationId + ".${brand}" appConfig.versionCode = new Date().getTime() appConfig.versionName = version }
quelle