22 votes

Comment inclure la chaîne de version dans le nom de fichier lors de la construction d'Android apk avec ant?

Normalement, nous construisons android package en mode debug avec la commande

ant debug

et a obtenu le nom de fichier apk AppName-debug.apk.

Est-il possible de générer le fichier apk dans le format AppName-debug-<version-number>.apk directement, sans 'mv' commande?

Merci.

38voto

cistearns Points 2149

Je l'ai fait de manière automatisée, en utilisant les informations du manifeste Android.

Mon approche a été de modifier le projet local ant build.xml le fichier à importer une copie personnalisée du maître - build.xml le fichier, dans la dernière version du SDK, le maître du fichier est importé dans votre fichier se trouve dans <SDK>/tools/ant/build.xml (a android_rules.xml dans les versions précédentes) Note l' import ligne dans la valeur par défaut build.xml fichier local à votre projet.

Les commentaires dans le local build.xml créé par l'Android outils contiennent des détails sur la façon de faire de personnalisation, tels que les futures mises à jour pour les outils ne cassera pas vos modifications.

Dans la coutume fichier de règles d'ajouter:

<xmlproperty file="AndroidManifest.xml" prefix="mymanifest" collapseAttributes="true"/>

Cela peut se lire dans le manifeste comme un ensemble de propriétés ant, avec un préfixe personnalisé pour s'assurer qu'aucune collision de nom.

Vous pouvez ensuite ajouter ${mymanifest.le manifeste.android:versionName} à l'un des spots que l'apk nom est défini, il suffit de chercher pour .apk dans la coutume de fichier de règles.

J'ai utilisé ce processus pour automatiser la gestion des versions de fichiers à partir d'un serveur de build.

Avec quelques réglages, il est également possible d'avoir votre version de l'app signé automatiquement, acheter réglage des mots de passe dans les propriétés et l'utilisation de ceux de la signature de la tâche. Les mots de passe où sont stockées dans un autre fichier de propriétés qui ne vivaient que sur le serveur de build. Alors qu'un mineur risque pour la sécurité, dans certains cas, il est pesé par la nécessité de fin pour mettre fin à l'automatisation de la compilation.

9voto

mivola Points 181

Un autre, plus comme Android solution est d'utiliser XPATH tâche, comme c'est fait dans le ${sdk.dir}/tools/ant/build.xml:

<xpath input="AndroidManifest.xml" expression="/manifest/@android:versionName"
                        output="versionName" default="unknown"/>
<echo message="name: ${versionName}"></echo>

Cela nécessite la définition de la tâche:

<path id="android.antlibs">
    <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
</path>

<taskdef name="xpath"
        classname="com.android.ant.XPathTask"
        classpathref="android.antlibs" />

Je ne sais pas qui est le minimum version du SDK, mais il fonctionne avec SDK14.

En ce qui concerne, Michael

4voto

Jagadeesh Points 11

La Solution décrite dans le post suivant, a custom_rules.xml fichier qui peut être juste copié pour obtenir le résultat souhaité. http://jeffreysambells.com/2013/02/14/build-your-android-apk-with-the-manifest-version-number

-4voto

DynamicMind Points 3005

Oui, il y a un moyen de générer de fichier apk avec n'importe quel nom que je donne une processus pour vous en friche ce processus, la vous l'avez .apk mentionner votre nom.

1-clic Droit sur l'application, dans l'explorateur de packages . 2-a Choisi d'exportation. 3-choisissez Android 4-Choisir l'Exportation de l'application Android. 5-Créer un nouveau fichier de stockage des clés . 6 - remplir le formulaire. 7-: Donner apk nom de fichier que vous voulez 8-:indiquer l'emplacement de apk pour stocker apk .

Alors que vous trouver la solution de votre problème. J'espère que c'est de l'aide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X