我目前正在和Ant一起做一些汽车品牌推广工作。我修改了默认的build.xml并设置了我自己的目标。我希望问的是,在Ant脚本中是否有一种方法可以自动重命名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="com.arthur.android(.*)"" />
<substitution expression="package="com.arthur.android.brandA"" />
<fileset dir="" includes="AndroidManifest.xml" />
</replaceregexp>
</target>
有没有办法可以添加更多任务,让输出文件就像brandA.apk一样?
谢谢!
答案 0 :(得分: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...
答案 1 :(得分:1)
Here我找到了更好的解释和更合适的方式来覆盖释放目标。
请参阅以下部分:
<target
name="release"
depends="custom-set-release-mode, android_rules.release" />
答案 2 :(得分:0)
非常简单。请参阅此链接[1]:https://ant.apache.org/manual/running.html
所以在上面的例子中,我们需要像这样运行它,
ant debug -Dout.final.file = brandA.apk
多数民众赞成。