我想在单击 Export 时自动增加 android 应用程序清单文件的 versionCode 和 versionName(以导出应用程序的新版本)
我在这里找到了第二个答案(Android 应用程序中的自动递增版本代码)非常有用(注释包括 .exe 程序以自动递增 Android 版本代码),但是,它们使它在 Build 上运行,我希望它在单击 File 时运行 - > 导出,请看图片
我想在单击 Export 时自动增加 android 应用程序清单文件的 versionCode 和 versionName(以导出应用程序的新版本)
我在这里找到了第二个答案(Android 应用程序中的自动递增版本代码)非常有用(注释包括 .exe 程序以自动递增 Android 版本代码),但是,它们使它在 Build 上运行,我希望它在单击 File 时运行 - > 导出,请看图片
除了该按钮的常用功能之外,您可能会考虑修改 File -> Export 按钮以执行构建器以增加版本代码(如您提到的帖子中所示)。org.eclipse.ui.menus 扩展点似乎是一个很好的起点。(免责声明:我没有试过这个。)
但是,在这里记住以下 xkcd 可能会更好:
我已经用大量的自定义蚂蚁步骤做到了这一点。
首先,您需要将内部版本号提取到属性文件中。让我们称之为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 的出现,所有这些都必须尽快重写。:(