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