2013-05-07 11 views
8

Voglio incremento automatico della versionCode e versionName del file manifesto delle app Android quando clicco su Export (per esportare una nuova versione dell'app)Come incrementare automaticamente versionCode durante l'esportazione di app Android in Eclipse?

ho trovato qui la seconda risposta (Auto increment version code in Android app) estremamente utili (commento includono programmi exe a incremento automatico Android versionCode), tuttavia, hanno fatto girare su Genera, voglio che venga eseguito quando si fa clic su File -> Esporta, vedi immagine si prega di

enter image description here

+2

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

+1

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

risposta

8

si potrebbe considerare la modifica del pulsante File -> Esporta per eseguire un builder per incrementare il codice di versione (come mostrato nello post you mentioned) oltre alle normali funzionalità del pulsante. Il org.eclipse.ui.menus extension point sembra un buon punto di partenza. (Disclaimer: io non ho provato questo.)

Tuttavia, potrebbe essere buono per mantenere il seguente xkcd in mente qui:

XKCD: Is It Worth the Time?

+1

LOL grazie mille per la tua risposta e xkcd, in base ad essa, posso passare 1 giorno a giocare con quel pulsante di esportazione in modo da avere effettivamente risparmiato il mio tempo: D –

+1

Ho trovato molto utile http: // www .vogella.com/articles/EclipseExtensionPoint/article.html –

+4

Mentre il fumetto di xkcd è buono, non tiene conto del fattore di disturbo. Se hai 20 piccoli compiti che devi fare per un rilascio, puoi essere sicuro che finirai per dimenticartene uno. È meglio automatizzarsi per la propria sanità mentale. –

4

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. :(