¿Cómo boost automáticamente el código de versión al exportar aplicaciones de Android en Eclipse?

Deseo boost automáticamente el código de versión y el nombre de versión del file de manifiesto de la aplicación de Android cuando hago clic en Exportar (para exportar una nueva versión de la aplicación)

Encontré la segunda respuesta aquí ( Código de versión incremental automática en la aplicación de Android ) extremadamente útil (los progtwigs de .exe incluyen comentarios para boost automáticamente el código de versión de Android), sin embargo, hicieron que se ejecutara en Build, quiero que se ejecute cuando click File – > Exportar, ver image por favor

enter image description here

Puede considerar modificar el button Archivo -> Exportar para ejecutar un generador para incrementar el código de la versión (como se muestra en la publicación que mencionó ) además de la funcionalidad habitual de ese button. El punto de extensión org.eclipse.ui.menus parece ser un buen punto de partida. (Descargo de responsabilidad: no he intentado esto.)

Sin embargo, podría ser bueno tener en mente el siguiente xkcd aquí:

XKCD: ¿Vale la pena el tiempo?

Lo he hecho con una tonelada de pasos personalizados.

Primero, necesitas extraer el número de compilation en un file de properties. Vamos a llamarlo version.properties

Entonces, el paso para incrementar el código de la versión es:

 <target name="increment-version-code"> <propertyfile file="version.properties"> <entry key="versionCode" type="int" default="0" operation="+" value="1" /> </propertyfile> </target> 

Esto leerá el versionCode input, lo incrementará y lo saveá de nuevo en version.properties.

Hasta aquí todo bien. El último paso es get ese versionCode en el file AndroidManifest.xml y, lamentablemente, ahora se vuelve complicado.

La forma en que lo resolví fue regenerar el manifiesto a partir de una plantilla en cada compilation utilizando la funcionalidad de filtrado en ant.

 <target name="generate-manifest"> <filter filtersfile="version.properties"/> <copy todir="${source.dir}" overwrite="true" verbose="true" filtering="true"> <fileset dir="${source.dir}" casesensitive="false"> <include name="**/*.base"/> </fileset> <mapper type="glob" from="*.base" to="*" /> </copy> </target> 

Entonces, todo lo que tiene que hacer es mover su AndroidManifest.xml a AndroidManifest.xml.base y replace su atributo versionCode para leer android:versionCode="@versionCode@" . A continuación, puede ejecutar el objective increment-version-code para encontrar el versionCode en version.properties y el objective generate-manifest para convertir la plantilla .base en el manifiesto final.

Estos se pueden agregar fácilmente como pasos de compilation para su proyecto Eclipse o como dependencies para las comstackciones de ants exportadas. Desafortunadamente, no hay un gancho fácil para la funcionalidad de export (aunque, hay para "After Clean", que me parece lo suficientemente bueno).

Por supuesto, con Gradle en el horizonte, todo esto tendría que ser reescrito pronto. :(