2013-02-06 11 views
5

Attualmente sto giocando con Ant per fare alcuni lavori di branding automatico. Ho modificato predefinito build.xml e impostato il mio target. Quello che spero di chiedere è che c'è un modo in Ant Script che potrebbe rinominare automaticamente il file apk con il nome giusto?Come utilizzare Ant per rinominare automaticamente il file apk di output?

Io attualmente ha questa impostazione target Ant nel mio 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> 

C'è un modo che io possa aggiungere un po 'di compiti, di lasciare che il file di output proprio essere come brandA.apk?

Grazie!

risposta

10

Il nome del file apk finale è in realtà definita dalla proprietà 'out.final.file'

Così si potrebbe creare un nuovo task che imposta questa proprietà:

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

Infine, non vi resta che invoca il target -set-out-final-file prima di chiamare il target di debug o release.

Utilizzando il compito release-brandA, sarebbe diventato questo:

<target name="release-brandA" 
     depends="default, -set-out-final-file, -set-release-mode, -release-obfuscation-check... 
+0

Esattamente quello che mi serve! Grazie! – Arthur0902

1

Here ho trovato più spiegazione migliore e il modo più adatto per eseguire l'override di destinazione di rilascio.

Si prega di fare riferimento alla sezione:

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

sua molto simple.Refer questo link [1]: https://ant.apache.org/manual/running.html

Quindi, nel caso di cui sopra, abbiamo bisogno di correre in questo modo,

ant debug -Dout.final.file = brandA.apk

Questo è tutto.

Problemi correlati