Cordova: Comment configurer le fichier config.xml spécifique à la plate-forme qui n'est pas écrasé après la construction de cordova?

J'utilise Cordova avec deux plates-formes ios et Android. Quand je change quelque chose dans mon

Project/config.xml 

Il sera fusionné en

  • Android: capturez un document et numérisez à l'aide de la caméra
  • Android IllegalStateException: Fragment non associé à Activity Webview
  • Comment puis-je diffuser de la musique à partir d'un fichier dans une zip cryptée sans décompresser l'intégralité du fichier?
  • Camera Intent not saving photo
  • ADT nécessite 'org.eclipse.wst.sse.core 0.0.0' mais il n'a pas été trouvé
  • Libgdx ou playn?
  •  Project/platforms/android/res/xml/config.xml Project/platforms/ios/Project/config.xml 

    Après avoir construit cordova .

    Comment puis-je définir des paramètres spécifiques à la plate-forme qui ne seront pas écrasés avec cordova build?

  • Les téléphones Samsung émettent beaucoup de messages de journal sur logcat
  • Java vs Python HMAC-SHA256 Mismatch
  • ID d'identité protégés dans R.java
  • Comment ouvrir la boîte de réception par courrier par défaut à partir du code Android?
  • FastScroller se défile seulement vers le premier élément, et non vers la vue d'en-tête
  • OnCréer appeler Activité A en navigation vers le haut
  • 4 Solutions collect form web for “Cordova: Comment configurer le fichier config.xml spécifique à la plate-forme qui n'est pas écrasé après la construction de cordova?”

    Définissez la configuration spécifique de votre plate-forme à l'intérieur des éléments de la plate-forme.

     <platform name="android"> <preference name="Fullscreen" value="true" /> ... </platform> 

    Voir le bas de: http://cordova.apache.org/docs/fr/4.0.0/config_ref_index.md.html

    Et si vous utilisez une ancienne version de Cordova, pensez à mettre à jour autant de problèmes critiques qui ont été résolus.

    Vous avez besoin d'un crochet cordova. Je vous recommande vivement de voir ce lien: Cordova Hooks

    Plus précisement:

    1. Dans le dossier hooks / niveau supérieur de votre application, créez un sous-dossier nommé "after_prepare".
    2. Dans hooks / after_prepare, créez un script exécutable que votre plateforme sait comment exécuter (p. Ex. Sur Linux: créez un script BASH, sur Windows: créez un fichier BAT, sur n'importe quelle plate-forme: créez un script Node.js). Disons que vous voulez un script bash:

    Créer un fichier de script crochet "after_prepare" cordova

     mkdir -p hooks/after_prepare touch hooks/after_prepare/change_my_configxml.sh chmod 755 hooks/after_prepare/change_my_configxml.sh edit hooks/after_prepare_change_my_configxml.sh 

    Hooks / after_prepare / change_my_configxml.sh

     #!/bin/bash echo ${CORDOVA_VERSION}; echo ${CORDOVA_PLATFORMS}; echo ${CORDOVA_PLUGINS}; echo ${CORDOVA_HOOK}; echo ${CORDOVA_CMDLINE}; # == put commands to make your config xml changes here == # == replace this statement with your own == sed "s/index\.html/http:\/\/my.example.com\?platform=ios\&amp;cordova=3.4.0/" platforms/ios/www/config.xml > config.tmp && mv -f -v config.tmp platforms/ios/www/config.xml 

    Notez que les crochets de cordova ont été initialement placés dans .cordova / hooks / …, mais récemment ils ont déménagé dans un crochet / dossier de haut niveau.

    MODIFIER:

    Voici un script entièrement fonctionnel pour créer et exécuter deux applications Cordova légèrement différentes. Fait intéressant, l'attribut dans le fichier config.xml du dossier de plate-forme iOS semble être ignoré, de sorte que ce script met à jour le config.xml de niveau supérieur lorsqu'il traite d'iOS.

    CreateMultiPlatformCordovaApp.sh

     #!/bin/bash # ==== Create cordova apps with different URLs for android and iOS cordova create appFolder com.example.myApp "My App" cd appFolder/ cordova platform add ios cordova platform add android # ==== make an after_prepare hook script mkdir -p hooks/after_prepare touch hooks/after_prepare/change_my_configxml.sh chmod 755 hooks/after_prepare/change_my_configxml.sh # ==== start of hook script content ==== echo '#!/bin/bash echo "CORDOVA_VERSION: ${CORDOVA_VERSION}"; echo "CORDOVA_PLATFORMS: ${CORDOVA_PLATFORMS}"; echo "CORDOVA_PLUGINS: ${CORDOVA_PLUGINS}"; echo "CORDOVA_HOOK: ${CORDOVA_HOOK}"; echo "CORDOVA_CMDLINE: ${CORDOVA_CMDLINE}"; # == put commands to make your config xml changes here == # == replace these statement with your own == if [ ! -f platforms/android/res/xml/config.xml ] then cp -v -f config.xml platforms/android/res/xml/config.xml; fi if [[ ${CORDOVA_PLATFORMS} == android ]]; then sed -E "s/<content src=\"[^\"]+\"/<content src=\"http:\/\/www.google.com\/search\?q=Google%20Nexus%205\&amp;hl=xx-bork\"/" platforms/android/res/xml/config.xml > config.tmp && mv -f -v config.tmp platforms/android/res/xml/config.xml fi if [[ ${CORDOVA_PLATFORMS} == ios ]]; then sed -E "s/<content src=\"[^\"]+\"/<content src=\"http:\/\/www.google.com\/search\?q=iPad%20Retina\&amp;hl=xx-bork\"/" config.xml > config.tmp && mv -f -v config.tmp config.xml fi ' > hooks/after_prepare/change_my_configxml.sh # ==== end of hook script content ==== cordova prepare android cordova build android cordova emulate android cordova prepare ios cordova build ios cordova emulate ios 

    Comme je n'ai pas encore trouvé une meilleure façon, je suggère de sauvegarder les fichiers config.xml comme vous le souhaitez dans un autre emplacement, et d'écrire un script qui fait un cordova prepare , puis de copier le fichier config.xml vers où il devrait aller avant Compilation, puis exécutez cordova compile . cordova buld juste un cordova prepare suivi d'une cordova compile , donc un script qui effectue cette copie entre ces deux étapes équivaut à une cordova build , mais qui préserve vos fichiers personnalisés.

    Si vous utilisez l'IDE xcode, vous pouvez ajouter un script de pré-action à la version du projet iOS:

    1. Sélectionnez Produit> Schéma> Modifier le schéma
    2. Sélectionnez Créer> Pré-actions à partir de la gauche
    3. Cliquez sur + et sélectionnez "New Run Script Action"

    Et pour le script, vous pouvez entrer:

    1. cordova prepare
    2. Les commandes cp pour copier votre config.xml enregistré et tout ce que vous souhaitez copier.
    3. Tout ce que vous souhaitez faire.

    Ensuite, faire une compilation à partir d'un xcode intérieur rafraîchira vos fichiers de code communs, préserve vos modifications aux fichiers et crée une compilation.

    Il s'agit clairement d'une solution de contournement, mais il a la vertu de pouvoir copier différentes versions de config.xml et de tous les autres fichiers dans différents répertoires de plate-forme.

    Une des mises en garde est que vous devez faire attention lorsque vous faites quelque chose avec les outils de Cordova qui apportent des modifications à config.xml ou tout autre fichier que vous conservez par une préparation que vous souhaitez conserver. En particulier, vous devez vous rappeler de mettre à jour votre fichier config.xml personnalisé chaque fois que vous ajoutez ou supprimez un plugin.

    J'espère que les développeurs d'outils de Cordova ajoutent un soutien pour ce type de désir raisonnable ou améliorent la documentation si elle est déjà prise en charge, car cela.

    N'est-il pas plus simple d'ajouter le dossier de la platformplatform dans votre dépôt, éditez-vous les fichiers dans le dossier de la platformplatform ? Dans votre construction régulière, vous n'appelez que cordova compile au lieu de cordova build , afin d'éviter de remplacer les fichiers de votre platform forme.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.