J'ai créé un projet à l'aide de Cordova CLI, version 3.5.0.
J'ai déployé avec succès le projet pour la plate-forme Android à l'aide de la CLI.
cordova run Android
Toutefois, je ne parviens pas à déployer le projet pour iOS.
cordova run ios
J'ai rencontré cette erreur:
mv: le fichier de destination existe déjà: /Users/amirfazwan/Documents/workspace/MyPKS/platforms/ios/MYPKS/MyPKS-Info.plist[.____. Printer.work./monPKS : /Users/amirfazwan/Documents/workspace/MyPKS/platforms/ios/MYPKS/MyPKS-Prefix.pch .____.]Shell.js: erreur interne Erreur: EINVAL, argument invalide '/Users/amirfazwan/Documents/workspace/MyPKS/platforms/ios/MYPKS.xcodeproj' À Object.fs.renameSync (fs.js: 543: 18) À/usr/local /lib/node_modules/cordova/node_modules/cordova-lib/node_modules/shelljs/Shell.js:495:8 sur Array.forEach (native) sur Object._mv (/ usr/local /lib/node_modules/cordova/node_modules/cordova-lib/node_modules/shelljs/Shell.js:471:11&&/.] à Object.mv (/ usr/local/lib/node_modules/cordova/node_modules/cordova). lib/node_modules/shelljs/Shell.js: 1491: 23) sur pbxProject. (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/metadata/ios_parser.js:126:27) sur pbxProject.EventEmitter.emit (events.js: 98: 17) Sur pbxProject. (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/xcode/lib/pbxProject.js:30:18) sur ChildProcess.EventEmitter.emit (events.js: 98: 17) Dans handleMessage (child_process.js: 322: 10)
Ce problème ne se produit qu'après avoir accédé manuellement au projet Xcode pour ajouter l'écran Icon & Splash, car les écrans Icon & Splash ne sont pas automatiquement ajoutés au projet, même s'ils ont été déclarés dans le fichier config.xml.
J'ai essayé de supprimer le fichier Info.plist & Prefix.pch, mais ensuite cette erreur est apparue.
Erreur: ENOENT, aucun fichier ni répertoire de ce type '/Users/amirfazwan/Documents/workspace/MyPKS/platforms/ios/MYPKS/MYPKS-Info.plist' À Object.fs.openSync ( fs.js: 427: 18) sur Object.fs.readFileSync (fs.js: 284: 15) sur Object.exports.parseFileSync (/ usr/local/lib/node_modules/cordova /node_modules/cordova-lib/node_modules/plist-with-patches/lib/plist.js:18:19) à Object.module.exports.update_from_config (/ usr/local/lib/node/mod_modules/cordova/node_modules/cordova-lib/src/cordova/metadata/ios_parser.js: 66: 31) dans Object.module.exports.update_project (/ usr/local/lib/node_modules/cordova/node_modules/cordova-lib /src/cordova/metadata/ios_parser.js:189:21) à /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/prepare.js:113:31 à _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:798:54) à self.promiseDispatch.done (/ usr/local/lib/node/node_modules /cordova/node_modules/q/q.js:827: 30) Sur Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:760:13)
Le projet fonctionne très bien s'il est lancé à partir de Xcode, mais je ne peux plus construire le projet à partir de la CLI ni lancer la commande "serve" à partir de la CLI à des fins de débogage.
S'il vous plaît guidez-moi, merci.
RÉSOLU
Résolu en renommant le nom du projet en utilisant Xcode. Merci Jason pour les conseils.
EDIT: Essayez cette autre solution d'abord! Cela fonctionne pour la plupart des problèmes: https://stackoverflow.com/a/28300528/1250444
J'ai eu du mal avec cela aussi. Enfin trouvé une solution par essais et erreurs. RÉ:
Ce qui m'est arrivé, c’est de renommer le nom du projet en capitales. Cela a causé toutes sortes de confusion pour Cordova.
La première chose que j'ai faite a été de renommer les fichiers plist et pch problématiques pour qu'ils correspondent à la casse correcte. Donc, dans votre cas, s'il s'agissait de myPKS, mais qu'il s'agisse maintenant de MyPKS, vous devez renommer les fichiers en MyPKS-Info.plist et MyPKS-Prefix.pch.
J'ai ensuite dû renommer le .xcodproj pour correspondre à la capitalisation.
Après cela, un autre problème est apparu: Xcodebuild: error: le projet 'NewName.xcodeproj' ne contient pas de cible nommée 'NewName'.
Pour résoudre ce problème, je devais renommer la cible afin de disposer de la capitalisation appropriée. Depuis que je suis nouveau sur iOS dev, je ne sais pas comment décrire comment y arriver. Je suis finalement tombé sur lui, j'ai fait le changement et ça a fonctionné!
Bonne chance!
Supprimez simplement les plates-formes, puis ajoutez-les à nouveau.
cordova platform rm ios
cordova platform rm Android
cordova platform add ios
cordova platform add Android
Ce qui a résolu mon problème était le suivant
J'espère que cela aide quelqu'un d'autre.
La réponse de Jason Cox m'a aidée - mais je n'ai renommé aucun fichier, je devais simplement changer le nom de l'application dans mon config.xml.
<name>myApp</name>
à
<name>MyApp</name>
J'ai la même erreur. Cela m’est arrivé parce que j’ai changé le nom dans le xml de myapp à MyApp. Cela a encore fonctionné une fois que je l'ai changé pour revenir à l'ancien nom. Renommer en xcode a également fonctionné, alors merci pour cela.