android android-studio gradle android-gradle build.gradle

android - cómo anexar la construcción de la fecha a versionNameSuffix en gradle



android-studio android-gradle (6)

Además, no se olvide de agregar la importación como primera línea de Gradle:

import java.text.SimpleDateFormat; ...

Estoy usando Android Studio y necesito añadir un sufijo a versionNameSuffix en mi archivo build.gradle de Android. Tengo tres BuildTypes diferentes y solo necesito agregar el datetime a mi versión "beta", mi archivo actual es:

defaultConfig { versionCode 14 versionName "0.7.5" minSdkVersion 9 targetSdkVersion 18 } buildTypes { beta { packageNameSuffix ".beta" versionNameSuffix "-beta" signingConfig signingConfigs.debug } .... }

para probar y desplegar automáticamente, necesito obtener una 0.7.5-beta-build20131004 como: 0.7.5-beta-build20131004 , 0.7.5-beta-build1380855996 o algo así. ¿Algunas ideas?


No estoy familiarizado con Android Studio, pero supongo que Gradle se comporta como lo hace normalmente. Agregar algo como esto a la configuración de su proyecto de construcción debería ser el truco:

allProjects { gradle.taskGraph.whenReady { taskGraph -> versionNameSuffix += ''-build'' + // Java/Groovy code to produce the timestamp formatted the way you want } }


Puede definir en sus funciones y variables personalizadas build.gradle.

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()) }

Entonces puedes usarlo:

android { defaultConfig { versionName "${versionMajor}-beta-build-${buildTime()}" } }

o si desea agregarlo en su versionNameSuffix

beta { versionNameSuffix "-beta-build-${buildTime()}" }


Puedes probar

task timenow { println(new Date().getTime()) }

Ejecutar gradle: gradle timenow

Ver detalles. Colóquelo en la construcción de nivel superior

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 }


beta { packageNameSuffix ".beta" versionNameSuffix "-beta" + "-build" + getDate() signingConfig signingConfigs.debug } def getDate() { def date = new Date() def formattedDate = date.format(''yyyyMMddHHmmss'') return formattedDate }

Condensado:

def getDate() { return new Date().format(''yyyyMMddHHmmss'') }


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") } }