Cómo agregar la fecha de compilación a versionNameSuffix en gradle
Estoy usando Android Studio y necesito añadir un sufijo a versionNameSuffix en mi archivo build.gradle de Android. Tengo tres diferentes buildTypes y sólo tengo que añadir el datetime a mi versión beta, mi archivo real es:
defaultConfig { versionCode 14 versionName "0.7.5" minSdkVersion 9 targetSdkVersion 18 } buildTypes { beta { packageNameSuffix ".beta" versionNameSuffix "-beta" signingConfig signingConfigs.debug } .... }
Para probar e implementar automáticamente, necesito obtener una 0.7.5-beta-build20131004
final como: 0.7.5-beta-build20131004
, 0.7.5-beta-build1380855996
o algo así. ¿Algunas ideas?
- Integración con Android Studio y Protobuf
- Eliminación del elemento AndroidManifest con los sabores de producto gradle
- Android Studio 0.2.7 generar excepción con Gradle
- Construyendo un proyecto de Android Studio en Jenkins? Android.compileSdkVersion está ausente
- Dependencia de Gradle que causa error "Número mágico inválido"
- Android Conflict con dependencia appcompat
- Informe vacío de Jacoco para Android Espresso
- Proguard gradle debug build pero no las pruebas
- Al ser dicho proyecto no está usando el sistema de compilación gradle cuando es
- Android error en tutorial no puede encontrar la variable de símbolo activity_display_message
- Convertir el proyecto de Android para utilizar Gradle Script Kotlin
- Agrega .idea / libraries a .gitignore con Android Studio (y Gradle) una buena idea?
- Proyecto Android a Cordova plugin - R.java no encontrado / creado
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() { new Date().format('yyyyMMddHHmmss') }
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 usted puede utilizarlo:
android { defaultConfig { versionName "${versionMajor}-beta-build-${buildTime()}" } }
O si quieres añadirlo en tu versionNameSuffix
beta { versionNameSuffix "-beta-build-${buildTime()}" }
Además, no olvide agregar la importación como primera línea de Gradle:
import java.text.SimpleDateFormat; ...
No estoy familiarizado con Android Studio, pero asumo que Gradle se comporta como normalmente lo hace. Añadir algo como esto a su configuración de proyecto de construcción debe hacer el truco:
allProjects { gradle.taskGraph.whenReady { taskGraph -> versionNameSuffix += '-build' + // Java/Groovy code to produce the timestamp formatted the way you want } }
Puedes probar
task timenow { println(new Date().getTime()) }
Gradle de carrera: gradle timenow
Ver detalles. Colóquelo en la versió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 }
- "No se puede abrir el dispositivo de registro" / dev / log / main ": Ningún archivo o directorio"
- ManagedQuery () vs context.getContentResolver.query () vs android.provider.something.query ()