miércoles, 23 de agosto de 2017

Android y Git. Disponer del hash automáticamente.


Una de las cosas a las que estoy acostumbrado, es tener siempre en mi código, el hash/tag/versión del control de versiones que estoy usando, para poder rápidamente identificar esa aplicación en 
que parte se encuentra dentro de mi historia.

Mucha gente hace una variable , ya sea de fecha de compilacion, hora, etc, o var = "1.0.a".
Pero la idea es que sea el propio entorno el que lo haga por nosotros.

Para dotar a Android Studio de ello, a través de gradle, tan simple como editar el fichero 
build.gradle


apply plugin: 'com.android.application'

android {
    def getGitHash = { ->
        def stdout = new ByteArrayOutputStream()
        exec {
            commandLine 'git', 'rev-parse', '--short', 'HEAD'
            standardOutput = stdout
        }
        return stdout.toString().trim()
    }
    compileSdkVersion 25
    buildToolsVersion '25.0.0'
    defaultConfig {
        applicationId 'com.app.com.test'
        minSdkVersion 19
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        buildConfigField "String", "GitHash", "\"${getGitHash()}\""
    }

Lo marcado en color es lo que tenéis que poner en el fichero build.gradle.
OJO , la función getGitHash() DEBE de estar ARRIBA, de lo contrario, no la encontrará.

Después , para usarla desde nuestro código;
String hash = BuildConfig.GitHash;


No hay comentarios:

Publicar un comentario

Android y Git. Disponer del hash automáticamente.

Una de las cosas a las que estoy acostumbrado, es tener siempre en mi código, el hash/tag/versión del control de versiones que estoy usan...