ho fatto questo con una tonnellata di passi di formica su misura .
Prima di tutto, è necessario estrarre il numero di build in un file di proprietà. Chiamiamolo version.properties
Poi, il passo per incrementare il codice di versione è:
<target name="increment-version-code">
<propertyfile file="version.properties">
<entry key="versionCode" type="int" default="0" operation="+" value="1" />
</propertyfile>
</target>
Ciò leggere la voce versionCode
, incrementarlo e salvarlo di nuovo a version.properties.
Finora, tutto bene. L'ultimo passaggio è quello di ottenere quello versionCode
nel file AndroidManifest.xml
e sfortunatamente ora diventa disordinato.
Il modo in cui l'ho risolto è stato rigenerare il manifest da un modello su ogni build utilizzando lo filtering functionality nel form.
<target name="generate-manifest">
<filter filtersfile="version.properties"/>
<copy todir="${source.dir}" overwrite="true" verbose="true" filtering="true">
<fileset dir="${source.dir}" casesensitive="false">
<include name="**/*.base"/>
</fileset>
<mapper type="glob" from="*.base" to="*" />
</copy>
</target>
Poi, tutto quello che hai lasciato fare è spostare l'AndroidManifest.xml per AndroidManifest.xml.base e sostituire il vostro attributo versionCode
leggere android:versionCode="@[email protected]"
. È quindi possibile eseguire il target increment-version-code
per eseguire il dump del versionCode in version.properties
e il target generate-manifest
per convertire il modello .base
nel file manifest finale.
Questi possono quindi essere facilmente aggiunti come passi di costruzione al progetto Eclipse o come dipendenze per le versioni di formiche esportate. Sfortunatamente, non c'è un semplice aggancio per la funzionalità di esportazione (anche se c'è "After Clean", che trovo abbastanza buono).
Ovviamente, con Gradle all'orizzonte, tutto ciò dovrebbe essere riscritto a breve. :(
Hmm, beh, immagino che sia conveniente incrementare automaticamente versionCode (e possibilmente anche nome) quando si fa un'esportazione, ma penso anche che dovresti chiederti quanto spesso lo fai e se vale lo sforzo richiesto per scavare nel funzionamento interno di Eclipse per farlo fare ciò che vuoi. Inoltre, trovo la costruzione della linea di comando molto più flessibile, specialmente quando si tratta di creare versioni di rilascio delle mie app. È super facile incrementare la versione usando Ant e poiché l'intera build da riga di comando è basata su Ant, può diventare completamente automatizzata. – britzl
Solo una nota: con l'annuncio di Android Studio --- http://android-developers.blogspot.kr/2013/05/android-studio-ide-built-for-android.html --- in IO13, Android la creazione del progetto in Eclipse avrà il minimo o nessun supporto e quindi potresti considerare di lasciar perdere tutto. – ozbek