Bonjour à tous,
J'essai de modifier dynamiquement la valeur de versionCode du manifest. Je veux qu'elle soit égale à la valeur de la révision de mon projet sur subversion.
Après moulte recherche j'ai compris qu'il fallait utiliser un script ant. J'ai réussi produire quelque chose qui fonctionne :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <target name="update-svnversion"> <exec outputproperty="build.svnversion" executable="svnversion"> <arg line="-n -c" /> <redirector> <outputfilterchain> <tokenfilter> <replaceregex pattern="[0-9]+\:" replace="" /> <replaceregex pattern="[A-Z]+" replace="" /> </tokenfilter> </outputfilterchain> </redirector> </exec> <property name="match.start" value="android:versionCode=""/> <property name="match.end" value="""/> <replaceregexp file="AndroidManifest.xml" match="${match.start}.*${match.end}" replace="${match.start}${build.svnversion}${match.end}"> </replaceregexp> <echo level="info">Version = ${build.svnversion}</echo> </target>
j'ai placer le build.xml contenant ce xml à la racine , puis dans :
Properties => builders j'ai ajouté un builder ant qui utilise ce script.
Dans l'onglet targets pour Auto Build je choisi la target présenté si dessus.
A chaque build du projet , le manifest est bien mis à jour avec le dernier numéro de révision du projet.
Mon souçis c'est que du coup AndroidManifest.xml n'est jamais à jour par rapport à mon dépot :
- Premier build => codeVersion = 1
- Je commit => revision du dépot à 2 (manifest sur le dépot à 1)
- Second build => manifest passe à 2 donc plus synchro avec celui à 1 sur le dépot.
Y'a t'il un moyen quelconque d'arriver à avoir un code local toujours synchro avec mon dépot ?
Je maîtrise pas du tout ant , du coup je dois passer à coter de pas mal de truc :/
Mon but final est d'avoir une page info dans l'appli affichant le numéro de version et de build (qui correspond à versionCode) , il donc important que versionCode corresponde bien à la version comitée
Partager