J'utilise actuellement Cordova 3.4.0 et l'interface de ligne de commande pour construire mon projet afin de cibler Android à l'aide de la commande suivante:
cordova build Android
OR
cordova build Android --release
Mon config.xml a spécifié ce qui suit:
<widget id="com.example.myapp"
version="0.0.3"
versionCode="2"
...
>
</widget>
Le fichier AndroidManifest.xml résultant dans myapp/plates-formes/Android n'est pas mis à jour avec la version et le code de version spécifiés dans le fichier config.xml. Il reste par défaut:
<manifest
Android:versionCode="1"
Android:versionName="1.0"
...
</manifest>
Est-ce un bug? Ou y a-t-il un autre moyen de spécifier le versionCode et le nom de version pour Android dans le fichier config.xml? Même peut-être, y a-t-il un crochet que je peux utiliser pour mettre à jour AndroidManifest.xml avec la version correcte avant la compilation?
Je préférerais ne pas avoir à mettre cela à jour manuellement chaque fois que je veux que ça change comme:
Pour ces raisons, j'aimerais que les numéros de version soient définis dans le fichier config.xml. Des idées?
Merci
Enfin avec Cordova 3.5.0-0.2.4
j'ai ajouté cet attribut au <widget>
noeud config.xml
Android-versionCode="10"
et le AndroidManifest.xml
a été correctement mis à jour pour
Android:versionCode="10"
suite à la réponse de MichaelOryl, il y a quelque chose que j'ai implémenté avec cordova 3.4 et avec l'outil bash XMLStarlet
Fondamentalement, il copie la valeur de l'attribut versionCode de config.xml dans AndroidManifest.xml
Au lieu d'exécuter ceci:
cordova build Android --release
run [devrait devenir un script]:
cordova prepare Android
# grab version code from config.xml
VERSION_CODE=$(xmlstarlet sel -t -v "//@versionCode" "config.xml")
# write correct version code in manifest
xmlstarlet ed -L -u "/manifest/@Android:versionCode" -v "$VERSION_CODE" "platform/Android/AndroidManifest.xml"
cordova compile Android --release
Ainsi, lors de la mise à niveau vers cordova 3.5, je peux réutiliser le logiciel habituel 'cordova build Android - release'
j'ai résolu ce problème en utilisant le plugin cordova-custom-config, puis dans config.xml à l'intérieur du
<platform name="Android">
mettre
<preference name="Android-manifest/@Android:versionCode" value="108" />
remplacez la valeur par le code de version souhaité ...
Cela a fonctionné parfaitement pour moi.
modifier le code de version dans AndroidManifest.xml (/platforms/Android/AndroidManifest.xml)
<manifest Android:hardwareAccelerated="true" Android:versionCode="2"Android:versionName="0.0.2" package="com.ionicframework.zinescreen841178" xmlns:Android="http://schemas.Android.com/apk/res/Android">
changez le code de version ici, pas dans le fichier config.xml, il ne sera pas mis à jour. Ensuite, si vous prenez une version release, il générera un nouveau code de version.
Vous n'avez pas besoin de modifier AndroidManifest.xml car il est généré par cordova lui-même. Ainsi, tous vos changements dans Manifest sont annulés par cordova.
Et tout est responsable est build.gradle situé dans le dossier de la plate-forme
fichier -> plateforme/build.gradle
Rechercher
if (minSdkVersion> = 20) {defaultConfig.versionCode + = 9} sinon if (minSdkVersion = 14) {defaultConfig.versionCode + = 8}
comme votre code de version est mis à jour à partir d'ici, vous pouvez le changer ou le coder en dur