如何在Eclipse中导出Android应用程序时自动增加versionCode?

我想自动增加Android应用程序清单文件的versionCode和versionName,当我点击导出(导出新版本的应用程序)

我发现第二个答案( 在Android应用程序中自动增加版本代码 )非常有用(注释包括.exe程序来自动增量Android versionCode),但是,他们使它运行在生成,我希望它运行时,我点击文件 – >出口,请参阅图像

在这里输入图像说明

Solutions Collecting From Web of "如何在Eclipse中导出Android应用程序时自动增加versionCode?"

您可能会考虑修改文件 – >导出button来执行一个构build器,以增加版本代码(除了该button的常用function外)。 org.eclipse.ui.menus扩展点看起来是一个很好的起点。 (免责声明:我没有试过这个。)

但是,在这里保留下面的xkcd可能是件好事:

XKCD:这是值得的时间吗?

我用一大堆自定义的ant步骤做了这个。

首先,您需要将内部版本号提取到属性文件中。 我们称之为version.properties

然后,增加版本代码的步骤是:

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

这将读取条目versionCode ,将其增加并保存回version.properties。

到现在为止还挺好。 最后一步是将versionCode放到AndroidManifest.xml文件中,不幸的是现在变得混乱了。

我解决这个问题的方法是使用ant中的过滤function从每个构build的模板重新生成清单。

 <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> 

然后,您只需将AndroidManifest.xml移动到AndroidManifest.xml.base并将您的versionCode属性replace为android:versionCode="@versionCode@" 。 然后,您可以运行increment-version-code目标来.base version.properties的versionCode和generate-manifest目标以将.base模板转换为最终清单。

这些可以很容易地作为构build步骤添加到Eclipse项目中,或作为依赖到导出的ant构build。 不幸的是,导出function并没有简单的钩子(尽pipe如此,“清理后”,我觉得很好)。

当然,随着Gradle的到来,所有这些都将不得不很快被重写。 :(