Cambiar el androide gradle versionCode forma la línea de comandos
Tengo un archivo build.gradle en mi aplicación android con esta configuración:
android { ... defaultConfig { applicationId "some.app.id" versionName '1.2' versionCode 3 ... } ... }
Mi AndroidManifest.xml no contiene versionCode y no contiene versionName.
- Integre Calabash en jenkins android
- Mi compilación falla cuando uso Ant para construir y el proyecto de Android con múltiples bibliotecas
- ¿Cómo hacer Cucumber Android pruebas de integración?
- Incrementa el número de compilación de Android en Integración continua
- Eliminación de complementos cordova del proyecto
Ahora quiero construir esta aplicación en Jenkins y pasar BUILD_NUMBER como un versionCode para la aplicación, por lo que cada compilación tiene una versión superior.
Así que en el trabajo me hava una llamada:
./gradlew -PversionCode=$BUILD_NUMBER clean build
Cuando uso "versionCode" para cambiar el nombre de "app-release.apk" el valor de versionCode es el mismo que se pasa desde la línea de comandos:
applicationVariants.all { variant -> variant.outputs.each { output -> output.outputFile = new File(output.outputFile.parent, output.outputFile.name.replace("app-release.apk", "MyApp_" + "_v" + versionName + "." + versionCode + ".apk")) } }
Resumen
Así que tengo un valor por defecto de "versionCode" establecido en 3, pero al construir en Jenkins quiero anularlo desde la línea de comandos.
El problema
El problema es que en AndroidManifest dentro de la aplicación build .apk tiene versionCode establecido en 3 en lugar de valor de BUILD_NUMBER. Lo he comprobado con "badging aapt volcado"
La pregunta
¿Puede este valor "versionCode" de android defaultConfig ser superado por el parámetro de línea de comandos?
Sé, yo podría utilizar una función como se explica en: http://robertomurray.co.uk/blog/2013/gradle-android-inject-version-code-from-command-line-parameter/ pero prefiero el camino más limpio De simple anulación pero no puedo conseguir que funcione.
- Generar android construir con jenkins.Crear archivos .apk
- Construir proyecto android con Jenkins: No se pudo inicializar análisis
- Cómo generar informes de prueba de JUnit en android para jenkins
- El demonio de compilación de Gradle desapareció inesperadamente (puede haber sido destruido o puede haberse estrellado) mientras construía un proyecto de Android en Jenkins
- ¿Por qué el Sonar no lee mis resultados de JUnit XML en Jenkins?
- Proyecto Android de Maven en Jenkins
- Android Emulator Plugin en Jenkins - ¿Cómo extender el tiempo de espera?
- Auto build Actionbarsherlock en Jenkins obtuvo error
Puede utilizar propiedades definiéndolas en un archivo gradle.properties
, consulte la documentación de gradle . Pero tendrás que tener mucho cuidado con los nombres que usas para tus propiedades: si usas versionName esa propiedad tendrá el valor correcto en gradle (puedes println
) pero no terminará en AndroidManifest.xml! Así que decidí usar 'versName'. (No sé lo suficiente sobre gradle para entender por qué esto es tan …)
Por lo tanto, en las gradle.properties
del proyecto, puede definir las siguientes propiedades: versCode=3 versName=1.2
A continuación, cambie el archivo build.gradle
en:
android { ... defaultConfig { applicationId "some.app.id" versionName versName as Integer versionCode versCode ... } ... }
Ahora puede anularlos en la línea de comandos de la siguiente manera: ./gradlew -PversCode=4 -PversName=2.1.3 clean build
- SetText (getString (R.strings.whatever) o setText (R.strings.whatever)?
- ¿Por qué cambiar el color del botón predeterminado hace que parezca RECTANGLE en Android?