Невозможно построить проект для iOS от cordova cli

Я создал проект с использованием Cordova CLI, версия 3.5.0.

Я успешно развернул проект для платформы Android с помощью CLI.

cordova run android 

Однако у меня возникла проблема с развертыванием проекта для iOS.

 cordova run ios 

Я столкнулся с этой ошибкой:

 Mv: файл dest уже существует: /Users/amirfazwan/Documents/workspace/MyPKS/platforms/ios/MYPKS/MyPKS-Info.plist

 Mv: файл dest уже существует: /Users/amirfazwan/Documents/workspace/MyPKS/platforms/ios/MYPKS/MyPKS-Prefix.pch

 Shell.js: внутренняя ошибка
 Ошибка: EINVAL, недопустимый аргумент '/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
     В Array.forEach (native)
     В 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)
     В pbxProject.  (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/metadata/ios_parser.js:126:27)
     В pbxProject.EventEmitter.emit (events.js: 98: 17)
     В pbxProject.  (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/xcode/lib/pbxProject.js:30:18)
     В ChildProcess.EventEmitter.emit (events.js: 98: 17)
     At handleMessage (child_process.js: 322: 10)

Эта проблема возникает только после того, как я впервые приступил к проекту Xcode, чтобы добавить значок и экран заставки, поскольку значок и заставки не добавляются автоматически в проект, хотя он объявлен в файле config.xml.

Я попытался удалить файл Info.plist & Prefix.pch, но затем появилась эта ошибка.

 Ошибка: ENOENT, нет такого файла или каталога '/Users/amirfazwan/Documents/workspace/MyPKS/platforms/ios/MYPKS/MYPKS-Info.plist'
     В Object.fs.openSync (fs.js: 427: 18)
     В Object.fs.readFileSync (fs.js: 284: 15)
     В 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_modules/cordova/node_modules/cordova-lib/src/cordova/metadata/ios_parser.js:66:31)
     В 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_modules/cordova/node_modules/q/q.js:827:30)
     В Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:760:13)

Проект работает отлично, если он запущен с Xcode, но я больше не могу строить проект из CLI или запускать команду «serve» из CLI для цели отладки.

Пожалуйста, помогите мне, спасибо.


РЕШИТЬ

Решено путем переименования имени проекта с помощью Xcode. Спасибо Джейсону за советы.

WWWWW

Solutions Collecting From Web of "Невозможно построить проект для iOS от cordova cli"

Я тоже боролся с этим. Наконец нашел решение путем проб и ошибок. D:

Для меня произошло переименование названия проекта с капиталами. Это вызвало всевозможные путаницы для Кордовы.

Первое, что я сделал, это переименование проблемных файлов plist и pch для соответствия правильной капитализации. Итак, в вашем случае, если это был myPKS, но теперь это MyPKS, вам нужно переименовать файлы в MyPKS-Info.plist и MyPKS-Prefix.pch.

Затем мне пришлось переименовать .xcodproj для соответствия капитализации.

После этого возникла еще одна проблема: xcodebuild: error: проект NewName.xcodeproj не содержит цель с именем «NewName».

Чтобы решить эту проблему, мне пришлось переименовать цель, чтобы иметь соответствующую капитализацию. Поскольку я новичок в iOS dev, я не знаю, как описать, как туда добраться. Я только что наткнулся на это, сделал изменения, и это сработало!

Удачи!

Просто удалите платформы, а затем добавьте их снова.

 cordova platform rm ios cordova platform rm android cordova platform add ios cordova platform add android 

То, что решило мою проблему, заключалось в следующем:

  1. Удаление платформы ios; Ионная платформа удаляет ios
  2. Удаление платформы Android; Ионная платформа удалить андроид
  3. Добавление платформы Ios назад; Ионная платформа добавить ios
  4. Добавление платформы Android назад; Ионная платформа добавить android
  5. Перестроить; Ионная сборка

Надеюсь, это поможет кому угодно.

Ответ Джейсона Кокса помог мне, но я не переименовал файлы, мне просто нужно было изменить имя приложения в моем файле config.xml

 <name>myApp</name> 

в

 <name>MyApp</name> 

Это работало в Meteor 1.3.x. Удалите определенную платформу и снова добавьте ее через команду meteor через консоль.

Напр.

Введите описание изображения здесь

 meteor list-platforms meteor remove-platform ios meteor add-platform ios 

У меня такая же ошибка. Причина, по которой это случилось со мной, заключалась в том, что я изменил имя в xml с myapp на MyApp. Он снова работал, когда я изменил его на прежнее имя. Переименование в xcode также сработало, поэтому спасибо за это.