8

我想在单击 Export 时自动增加 android 应用程序清单文件的 versionCode 和 versionName(以导出应用程序的新版本)

我在这里找到了第二个答案(Android 应用程序中的自动递增版本代码)非常有用(注释包括 .exe 程序以自动递增 Android 版本代码),但是,它们使它在 Build 上运行,我希望它在单击 File 时运行 - > 导出,请看图片

在此处输入图像描述

4

2 回答 2

8

除了该按钮的常用功能之外,您可能会考虑修改 File -> Export 按钮以执行构建器以增加版本代码(如您提到的帖子中所示)。org.eclipse.ui.menus 扩展点似乎是一个很好的起点。(免责声明:我没有试过这个。)

但是,在这里记住以下 xkcd 可能会更好:

XKCD:值得花时间吗?

于 2013-05-12T16:44:24.593 回答
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中的过滤功能在每次构建时从模板重新生成清单。

<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属性替换为 read android:versionCode="@versionCode@"。然后,您可以运行increment-version-code目标以将 versionCode插入version.properties并运行generate-manifest目标以将.base模板转换为最终清单。

然后可以轻松地将这些作为构建步骤添加到您的 Eclipse 项目或作为导出的 ant 构建的依赖项。不幸的是,Export 功能没有简单的钩子(不过,有“After Clean”,我觉得这已经足够好了)。

当然,随着 Gradle 的出现,所有这些都必须尽快重写。:(

于 2013-05-18T23:15:31.297 回答