5

我目前正在和 Ant 一起做一些汽车品牌推广工作。我修改了默认的 build.xml 并设置了我自己的目标。我希望问的是,Ant Script 中是否有一种方法可以自动重命名 apk 文件,只需使用特定名称构建?

我目前在我的 build.xml 中有这个 Ant 目标设置:

<target name="release-brandA"
            depends="default, -set-release-mode, -release-obfuscation-check, -package, -post-package, -release-prompt-for-password, -release-nosign, -release-sign, -post-build"
            description="Builds the application in release mode for brandA.">
    <delete dir="${res}" />
    <copydir dest="${res}" src="${branding}/brandA" forceoverwrite="ture" />
    <replaceregexp flags="g" byline="false">
        <regexp pattern="import com.arthur.android(.*).R;"/>
        <substitution expression="import com.arthur.android.brandA.R;"/>
        <fileset dir="src" includes="**/*.java" />
    </replaceregexp>
    <replaceregexp flags="g" byline="false">
        <regexp pattern="package=&quot;com.arthur.android(.*)&quot;" />
        <substitution expression="package=&quot;com.arthur.android.brandA&quot;" />
        <fileset dir="" includes="AndroidManifest.xml" />
    </replaceregexp>
</target>

有没有办法可以添加更多任务,让输出文件就像brandA.apk?

谢谢!

4

3 回答 3

10

最终的 apk 文件名实际上由属性“out.final.file”定义

因此,您可以创建一个设置此属性的新任务:

<target name="-set-out-final-file">
    <property name="out.final.file" location="${out.absolute.dir}/brandA.apk" />
</target>

最后,您只需要-set-out-final-file在调用调试或发布目标之前调用目标。

使用你的release-brandA任务,它会变成这样:

<target name="release-brandA"
        depends="default, -set-out-final-file, -set-release-mode, -release-obfuscation-check...
于 2013-02-06T16:53:36.293 回答
1

在这里,我找到了更好的解释和更合适的方法来覆盖发布目标。

请参考部分:

<target
        name="release"
        depends="custom-set-release-mode, android_rules.release" />
于 2014-04-29T13:03:43.667 回答
0

它非常简单。参考此链接 [1]:https ://ant.apache.org/manual/running.html

所以在上述情况下,我们需要像这样运行它,

蚂蚁调试-Dout.final.file=brandA.apk

就是这样。

于 2015-12-18T09:00:06.673 回答