J'utilise XCode 5.0.2 et Cordova 3.4.0-0.1.3 - Ce que je découvre, c'est après avoir créé le projet à l'aide de la Cordova CLI et en l'ouvrant dans XCode, aucune modification du fichier index.html et du fichier index.js n'est jamais reportée sur le simulateur lorsque je clique sur Exécuter. Je dois ouvrir un terminal et émettre une commande Cordova Build, puis exécuter le simulateur et cela fonctionne
J'ai suivi toutes les instructions ici:
Phonegap - développement et lancement d'application sur simulateur
xcode 4 + phonegap ... ne met pas à jour JS lors de la construction?
Et rien ne fonctionne! n'importe qui a une solution à cela, car il est devenu pénible de changer d'allée et de retour.
Ainsi, après de nombreuses recherches, il semble que j'ai trouvé une solution qui fonctionne. Voici ce que j'ai fait. Après avoir examiné d'autres questions sur Stackoverflow, j'ai trouvé quelqu'un qui disait que cela fonctionnait pour eux.
Recherchez le fichier appelé copy-www-build-step.sh.
Le mien se trouvait dans [Dossier_projet] /platforms/ios/cordova/lib/copy-www-build-step.sh
Dans ce fichier, trouvez les lignes commençant par rsync -a "...
Ajoutez -c aux lignes rsync pour qu’elles soient prêtes rsync -a -c "...
Eh bien, j'ai essayé ça et ça n'a pas marché tout seul. J'ai aussi essayé la réponse de Ville et ça s'est rapproché mais pas de cigare. Enfin, j'ai pris ce que la commande de Ville et mis dans le fichier copy-www-build-step.sh
donc ma première ligne est maintenant
cd /path/to/your/cordova/project/
cordova prepare
SRC_DIR="www/"
DST_DIR="$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME/www"
COPY_HIDDEN=
ORIG_IFS=$IFS
IFS=$(echo -en "\n\b")
.....
.....
.....etc etc
Et maintenant je fais la modification, et cliquez sur Exécuter, bam tout est mis à jour. J'espère que ça aidera quelqu'un d'autre.
Vous pouvez ajouter un script de pré-action à la construction de votre projet XCode. Pour faire ça:
Ajoutez un script comme celui-ci:
cd /path/to/your/cordova/project/
cordova prepare ios > xcode-prepare-results.txt
Désormais, XCode doit toujours exécuter cordova prepare avant de générer votre projet afin de ne pas avoir à passer au terminal. Vous pouvez voir la sortie de prepare dans le fichier xcode-prepare-results.txt.
Notez que, selon la configuration de votre exécutable cordova et le shell que vous utilisez, vous devrez peut-être changer de shell ou modifier votre variable PATH pour que le script trouve cordova.
D'autres réponses à ce sujet ne fonctionnaient pas pour moi ou foutaient les plugins Cordova, par exemple. InAppBrowser, alors j'ai finalement trouvé ceci:
Editez le fichier copy-www-build-step.sh et ajoutez la ligne suivante au début:
cp -fR ../../www/ www/
il devrait donc ressembler à:
...
cp -fR ../../www/ www/ # new code
SRC_DIR="www/"
...
De cette façon, votre code sera mis à jour correctement et vos plugins fonctionneront
J'ai également édité le fichier copy-www-build-step.sh , mais vous ne voulez pas utiliser de chemin absolu depuis votre dossier User. Si vous travaillez avec d'autres développeurs, vous devrez le modifier chaque fois que vous extrayez du code.
Ce n'est pas grave, il suffit de changer:
SRC_DIR="www/"
À:
SRC_DIR="../../www/"
UPDATE A travaillé pour Cordova et Phonegap.
Pour que les fichiers source soient automatiquement copiés du répertoire source www vers le répertoire plateformes/ios/www lorsque vous cliquez sur le bouton Exécuter dans XCode:
Dans XCode, choisissez Produit-> Schéma-> Modifier un schéma ...
Développez le triangle pour Construire-> Pré-actions
Cliquez sur le "+" pour créer une nouvelle préaction
Vous pouvez laisser le paramètre "Shell" vide.
Définissez "Fournir les paramètres de construction de" au projet que vous construisez. C'est important.
Dans la zone de script, entrez:
cd ${PROJECT_DIR}/../..
echo "--- Start ---" > xcode-prepare-ios-results.txt
echo "Running cordova prepare ios command..."
pwd >> xcode-prepare-ios-results.txt
cordova prepare ios --verbose >> xcode-prepare-ios-results.txt
echo "--- Finished ---" >> xcode-prepare-ios-results.txt
Cela fonctionne pour moi avec XCode 8.2 et Apache Cordova 6.x
Exécutez "cordova prepare ios
" pendant les phases de construction:
cd /Users/*/YOUR_PROJECT_FOLDER
(Changer le dossier de votre projet)/Users/*/.nvm/versions/node/v?.?.?/bin/node node_modules/cordova/bin/cordova prepare ios
(Change le chemin en version du noeud)Après "Play", le dossier www sera automatiquement actualisé!
@Ksliman Je vous ai un peu modifié le code pour travailler sur mon système et rendre légèrement plus générique.
sommet du fichier copy-www-build-step.sh
## New Code Begin ###
cd ../../
PATH=${PATH}:/usr/local/bin
cordova prepare ios
## New Code End ###
SRC_DIR="www/"
Je vous suggère de nettoyer avant de construire votre projet xcode. Et encore une chose, assurez-vous de reconstruire votre projet en utilisant cordova build, et non dans xcode car il est totalement différent.
cordova build yourproject
Des solutions simples consiste à créer l'application avec Cordova en utilisant:
Sudo cordova build ios
Ensuite, allez à xcode> Produit> Nettoyer
Ensuite, allez à xcode> Exécuter (bouton Play)
tapez simplement:
cordova prepare
sur votre terminal et relancez votre projet dans Xcode
Si vous modifiez directement le code HTML à partir du Xcode, vous devez modifier le code/code HTML du dossier intermédiaire, et non du dossier principal.
Dans le dossier intermédiaire, vous aurez la même structure que dans le dossier principal, mais elle sera reflétée directement dans la construction xcode (iOS).
Dossier de transfert
Remarque: les modifications que vous avez apportées au xcode seront remplacées lorsque vous compilerez à nouveau à partir de la compilation/exécution de cordova. Veuillez donc copier vos modifications dans le dossier principal avant d'exécuter les commandes cordova.
Vous pouvez obtenir plus d’informations grâce à cette réponse: But du dossier Staging dans PhoneGap 3.4? Seules les modifications apportées à index.html dans ce dossier sont reconnues?
C'est la solution correcte prise à partir de:
Tout ce que j'avais à faire était d'inclure le chemin d'accès absolu complet à mon projet. Par exemple:
Pour moi, il y avait une erreur dans mon code. J'avais simplement besoin d'exécuter npm start
pour le localiser.
J'ai trouvé que parfois Cordova s'embrouille ... vous devez faire une "plate-forme cordova rm ios" (laissez vos plugins seuls), puis une "plate-forme cordova add iOS", qui réinstallera tous vos plugins sur votre plate-forme. .. puis essayez à nouveau votre build.
Chaque fois que j'utilise cordova build
, il remplace le contenu du fichier www
de ma plate-forme. J'utilise donc cordova compile
à la place.
De l'aide:
compile <plates-formes> compile le projet de plateforme sans le préparer
Il est important de simplement compiler les modifications pour ne pas construire des projets entiers, en particulier si vous créez une application mobile pour de nombreuses plates-formes et que vous devez apporter certaines améliorations spécifiques.