我正在使用Ant来构建我的Android项目。 Android项目被检入Tortoise SVN。现在,当我创建一个构建时,我希望apk文件理想地生成到窗口上的不同文件夹中,说明构建的版本号。例如,在第一次构建(ant发布)时,我想要文件夹bin / 1.0 / sample.apk以及下一个bin / 2.0 / sample.apk,因此我无法维护不同的版本。理想情况下,版本号应该是版本号清单(对吗?)。怎么办呢?
答案 0 :(得分:14)
您的项目中可以有一个custom_rules.xml文件,其中包含将apk复制到-post-build
目标中所需文件夹的语句。您可以使用copy
任务来处理它。
要从清单中检索版本信息,请按SO上的this answer
custom_rules.xml的示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="custom_rules">
<xmlproperty file="AndroidManifest.xml" prefix="mymanifest" collapseAttributes="true"/>
<property name="build.dir" value="bin/${mymanifest.manifest.android:versionName}/" />
<target name="-post-build">
<echo>Version is ${mymanifest.manifest.android:versionName}</echo>
<copy toDir="${build.dir}" >
<fileset file="${out.final.file}" />
</copy>
</target>
</project>
注意:目前,apk被复制到'bin'文件夹的子文件夹中。你必须考虑另一个目录,因为每个 clean 操作都会删除'bin'文件夹。