当我点击导出(导出应用程序的新版本)时,我想自动增加Android应用程序清单文件的versionCode和versionName
我发现这里的第二个答案(Auto increment version code in Android app)非常有用(评论包括.exe程序自动增加Android versionCode),然而,他们让它在Build上运行,我希望它在我点击File时运行 - >导出,请看图像
答案 0 :(得分:8)
您可以考虑修改文件 - >导出按钮以执行构建器以增加版本代码(如post you mentioned中所示)以及该按钮的常用功能。 org.eclipse.ui.menus extension point似乎是一个很好的起点。 (免责声明:我没试过这个。)
但是,在这里记住以下xkcd可能会很好:
答案 1 :(得分:4)
我已经完成了大量的自定义蚂蚁步骤。
首先,您需要将构建号提取到属性文件中。我们称之为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中的filtering functionality从每个构建的模板重新生成清单。
<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
属性替换为android:versionCode="@versionCode@"
。然后,您可以运行increment-version-code
目标来触发version.properties
和generate-manifest
目标中的versionCode,以将.base
模板转换为最终清单。
然后可以将这些作为构建步骤轻松添加到Eclipse项目中,或者作为导出的ant构建的依赖项添加。不幸的是,导出功能并没有简单的钩子(不过,有“After Clean”,我觉得这很好)。
当然,随着Gradle即将到来,所有这些都必须尽快重写。 :(