¿Es posible establecer el código de la versión de Android y el nombre a través de una tarea de Gradle?
Estoy tratando de automatizar el proceso de construcción en CI con el que estoy trabajando. Puedo llamar a un curl
y asignarle algunas variables como código de versión y nombres. Entonces CI (en mi caso, Bitrise CI) lo captura e inicia la generación de Release. Sin embargo, antes de que quiero establecer el código de versión y el nombre de la versión basada en lo que se ha pasado por curl
en el archivo build.gradle
y luego se inicia el proceso de construcción.
Por lo tanto, estoy pensando que puedo escribir un plugin / tarea que recibe el código de la versión / nombre de una línea de comandos y luego inyectarlo en el archivo build.gradle
. Un comando como ./gradlew setVersion 1 1.0
.
- Https post solicitud utilizando curl: Android
- Cómo crear una base de datos en CouchDB indicando el nombre de usuario y la contraseña
- Se reciben varias notificaciones de GCM
- No se puede subir un archivo APK a la aplicación de hockey a través de su API
- Cómo saber cuando la página siguiente / anterior ha cargado completamente en el efecto de curl de página por harism?
Por lo tanto, al ejecutar este comando a partir de un script que voy a escribir, podré ejecutar esta tarea gradle y todo el mundo desde cualquier lugar en el glob es capaz de crear una versión de construcción por curl
. Bastante interesante 🙂
Soy capaz de escribir una tarea similar al código siguiente y ponerlo en mi archivo build.gradle
principal.
task setVersion << { println versionCode println versionName }
Y pasar algunos parámetros a través de la línea de comandos:
./gradlew -PversionCode=483 -PversionName=v4.0.3 setVersion
Esta es mi salida:
:setVersion 483 v4.0.3 BUILD SUCCESSFUL Total time: 6.346 secs
Hasta aquí todo bien. Mi pregunta es cómo configurarlo en el archivo build.gradle
? Gracias
- Animación Curl de la página de Android
- TextView no se puede hacer clic en el efecto de vista Curl de OpenGl
- Android: efecto curl de página como iphone
- CURL en android
- Mientras hago el origen de Android 6.0, falló
- Error de compilación con ndk jni para curl
- Uso de cURL en Android
Puede crear métodos para actualizar el versionCode y versionName desde la línea de comandos:
def getMyVersionCode = { -> def code = project.hasProperty('versionCode') ? versionCode.toInteger() : -1 println "VersionCode is set to $code" return code } def getMyVersionName = { -> def name = project.hasProperty('versionName') ? versionName : "1.0" println "VersionName is set to $name" return name }
Luego en el bloque de Android:
defaultConfig { applicationId "your.app.id" minSdkVersion 15 targetSdkVersion 23 versionCode getMyVersionCode() versionName getMyVersionName() archivesBaseName = "YourApp-${android.defaultConfig.versionName}" }
Entonces usted puede llamar a cualquier tarea realmente:
./gradlew assembleDebug -PversionCode=483 -PversionName=4.0.3
Lea más sobre esto aquí: https://robertomurray.co.uk/blog/2013/gradle-android-inject-version-code-from-command-line-parameter/