2013-02-06 96 views
5

我目前正在和Ant一起玩一些汽車品牌的工作。我修改了默認的build.xml並設置了我自己的目標。我希望問的是,在Ant腳本中有沒有一種方法可以自動重命名用特定名稱構建的apk文件?如何使用Ant來自動重命名輸出apk文件?

我目前擁有這個Ant目標設定在我的build.xml:

<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的方法嗎?

謝謝!

回答

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... 
+0

正是我需要的!謝謝! – Arthur0902

1

Here我發現了更多更好的解釋和重寫公佈目標更合適的方式。

請參見章節:

<target 
     name="release" 
     depends="custom-set-release-mode, android_rules.release" />