Cómo automatizar el incremento de código de versión en AndroidManifest?

Tengo una aplicación que subió a Subversion / SVN repo. ¿Es posible utilizar el script para cambiar de alguna manera el código de la versión de la aplicación almacenado en AndroidManifest ? Quiero decir durante / después de la compra / actualización?

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="mypackage" android:versionCode="100000" android:versionName="1.0"> 

SVN tiene sustitución de palabras clave que puede utilizar para poner el número de revisión en un archivo. Sin embargo, esto dará lugar a la revisión cuando se modificó por última vez el archivo de manifiesto, que no es lo que desea.

La mejor manera de lograr lo que quieres es llamar a svnversion desde tu script de compilación e incrustar la salida en el archivo de manifiesto desde allí. Usted podría tener un archivo manifest.template bajo control de versión que puede ser utilizado por su script de generación para generar el archivo de manifiesto real. Ponga una palabra de marcador de posición en la plantilla y reemplácela por el número de revisión obtenido con svnversion .

Edit : en Eclipse probablemente usarías un script Ant, e invocarlo antes de la compilación normal . El ejemplo vinculado genera un archivo de clase con el número de revisión, pero también podría generar un archivo de manifiesto de una manera muy similar.

He hecho esto añadiendo un objetivo de compilación adicional, por lo que el código de versión se incrementa al crear el proyecto, no cuando se compromete con SVN. Estas son instrucciones para que esto funcione en IntelliJ IDEA.

Primero, agregue un nuevo archivo en la raíz de su proyecto llamado svn-revision.build.xml con los siguientes contenidos:

 <project default="svn-revision"> <target name="svn-revision"> <exec executable="sh" outputproperty="revision"> <arg value="-c" /> <arg value="svnversion | sed -e 's/^[^:]*://;s/[A-Za-z]//'" /> </exec> <echo>Revision (app): ${revision}</echo> <replaceregexp file="AndroidManifest.xml" match='android:versionCode="([^".]+)(\.[^"]*)?"' replace='android:versionCode="${revision}"' /> </target> </project> 

A continuación, en el menú, vaya a View > Tools > Ant Build , luego presione el pequeño botón + en la ventana y agregue el archivo recién creado. Haciendo clic en el botón verde "Ejecutar" en la ventana de Ant Build ejecutará el script de inmediato. Para que la secuencia de comandos se ejecute cada vez que se crea, tendrá que establecer el objetivo 'svn-revision' como destino predeterminado.

Podrías hacerlo en el tiempo de construcción usando el objetivo Ant de xpath proporcionado por los scripts de compilación de Android predeterminados para obtener el valor actual, y luego usar Ant replace.

SVN enfoque está bien, pero no necesariamente adecuado para todos. Yo prefiero tener control sobre la versión de la aplicación y el incremento versionCode, así que hice mi propia aplicación Java simple para hacer eso

caracteristicas:

  • VersionName se supone que es major.minor.point (según lo aconsejado por Android doc)
  • VersionName se puede conservar, restablecer a 1.0.0, o incrementar (una sola parte de ella y parte trasera está / se establece en 0)
  • VersionCode será reemplazado por Unix Time

Disponible aquí: android manifest build number

  • IntelliJ IDEA piensa que parte de mi proyecto es la subversión en lugar de git, ¿cómo arreglar esto?
  • "La versión del cliente de la línea de comandos de Subversion es demasiado antigua" en Android Studio
  • Combinación de SVN con el estudio de Android
  • Cómo subir un proyecto de estudio de Android a Subversion por primera vez
  • Android Studio - no se puede fusionar desde una sucursal de SVN
  • No se puede salir de svn
  • Migración de SVN a Android Studio
  • ¿Cómo puedo colocar un proyecto android en svn con bibliotecas de soporte
  • Eclipse está intentando construir los archivos en mis directorios .svn ... ¿cómo puedo decirle que se detenga?
  • Opción de Android Studio Subversion
  • ¿Cómo hago el desarrollo de Android desde varios ordenadores?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.