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

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

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

在这里输入图像说明

  • 时间select器对话框在Samsung S4 OS 4.3上崩溃
  • 在Android中启用MultiDex支持以在Eclipse中实现65K +方法
  • Eclipse按钮如Step in,Step out,resume等..不工作
  • 来自Eclipse的错误错误:函数'__android_log_print'无法parsing(Android,CDT)
  • 使用button标签,我可以自定义button吗?
  • android.support.v7.widget.RecyclerView无法实例化
  • 优化Eclipse for Android开发
  • 如何生成R.java
  • 您可能会考虑修改文件 – >导出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的到来,所有这些都将不得不很快被重写。 :(