9
votes

Intégrer les détails de la version à Android APK

Mon code est stocké dans le contrôle de la version SVN. J'utilise Eclipse pour construire mon application Android.

Dans ma demande, j'ai une boîte à points à propos. Je veux montrer la révision / balise de contrôle de la source correcte de la source.

Y a-t-il un moyen d'automatisation de cela de sorte que ma chaîne de version dans la zone à propos est toujours bonne, ou est-ce quelque chose que je dois modifier à la main chaque fois que je vous engage?

thx pour les premières réponses d'environ $ keywords $.

Réglage de la propriété SVN SVN: Mots-clés TO REV Agrandit un String privé M_SVN_REV = "$ REV: $" chaque fois que je soumets que fichier.

svn est un système de contrôle de version par fichier.

qui mène plutôt à se demander si je peux en quelque sorte pré-traiter certains fichiers dans l'Android Build thingy pour injecter une sortie Svnversion?


0 commentaires

4 Réponses :


1
votes

Conseils génériques uniquement, vous ne mentionnez pas votre système de contrôle de version.

Incorporer l'en-tête approprié (quelque chose comme Version $: $) dans le texte de la case à propos de. Lorsque vous vous engagez, la nouvelle version # sera stockée et lorsque vous construisez la valeur sera affichée.

[modifier]
1. Créez votre coffre à propos de la source séparée, ne vérifiez que lorsque vous incrémentez la version.
2. Intégré votre propre version dans un fichier d'en-tête (et n'oubliez pas de le modifier), utilisez cette chaîne de version dans votre zone à propos de la boîte (sous forme de externe String * par exemple)
[/ EDIT]


1 commentaires

Je pense que vous vouliez ajouter ce lien, SVNBook .red-haricot.com / nuit / fr / ...



7
votes

une approche possible. Dans votre AndroidManifest.xml Ajoutez des métadonnées à vos activités pour conserver la révision ou tout ce que vous souhaitez utiliser xxx

puis dans votre activité xxx

Vous pouvez également vouloir définir Android: versionName = "$ rev $" dans votre manifeste.

Pour automatiser le processus d'incrémentation du numéro de version dans Android: VersionCode < / code> et commettre le androidmanifest.xml Il existe différentes options, bâtiment avec Maven ou ant pourrait être des alternatives mais faisons-le utiliser Eclipse et Adt.

Premier, ajoutez un constructeur à votre projet ( mon projet -> Propriétés -> Constructeurs )

 text alt

Ce constructeur doit invoquer le Android-Incrément-Manifest-Version à l'aide du androidmanifest.xml comme argument

 text alt

script d'androïd-incrément-manifeste-version est quelque chose comme < Pré> xxx


6 commentaires

Yeap, je fais quelque chose comme ça, mais c'est un fichier par fichier afin qu'il ne soit pas mis à jour chaque fois que je soumets d'autres fichiers :(


Qu'est-ce que vous utilisez comme système de construction? Si vous utilisez Maven ou ANT, vous pouvez le scripter de sorte qu'il le fasse chaque fois que vous construisez.


Bonjour j'ai essayé d'utiliser votre script pour définir la valeur de la balise Android: versionName à la révision en cours. Donc j'ai défini Android: versionName = "$ rev $" et dans votre script j'ai changé (. * Android: VersionCode = ") à (. * Android: VersionName =") Mais chaque fois que le résultat n'est que "$ REV $". Avez-vous des allusions?


(\ d +) convient uniquement aux chiffres.


ROFLCOPTR, vous devez activer la révision dans SVN: Mots-clés Propriété pour ce fichier. Voir svnbook.red-bean.com/fr/1.1/ch07s02.html Pour plus de détails.


Cela ne fonctionne pas lorsque vous essayez d'exporter le projet: Impossible de lire ... / AndroidManifest.xml: ... la ressource est hors de synchronisation avec le système de fichiers: ... Construire aborti.



0
votes

Ceci peut être une tangente, mais j'utilise la balise d'étiquette $ $ de Cruse Control pour cogner la version dans mon écran à propos de l'écran. Chaque fois que je vérifie quelque chose dans, CC fait une mise à jour et épine une construction. L'une des étapes de mon script d'ant injecte la valeur d'étiquette $ du système de contrôle de croisière en une valeur au sein de Strings.xml. Cela me donne un nouveau numéro de version avec chaque commit. Je peux vérifier les journaux CC et faire correspondre un numéro de construction à un numéro de révision SVN.

Probablement plus de travail que vous n'êtes intéressé à faire pour quelque chose de ce simple. Je parierais aussi que tout autre système de construction existe une caractéristique similaire.


0 commentaires

1
votes

de l'idée de dtmilano.blogspot.com ... mais en utilisant uniquement la révision SVN: xxx

Le numéro de version ne change que lorsque le changement de révision SVN, c'est-à-dire seulement lorsque vous écrivez SVN COMMIS .

Si vous le souhaitez, vous pouvez ajouter une vérification de la révision modifiée, si cela exécute le SED pour le fichier alter. Est également possible de modifier la révision de la dernière révision SVN sur le serveur.


1 commentaires

Vous pourriez trouver svnversion utile ici; Il renvoie simplement le numéro de construction actuel, plus un nombre représentant des modifications locales.