Подтвердить что ты не робот

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

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

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

cordova run android

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

cordova run ios

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

mv: dest file already exists: /Users/amirfazwan/Documents/workspace/MyPKS/platforms/ios/MYPKS/MyPKS-Info.plist

mv: dest file already exists: /Users/amirfazwan/Documents/workspace/MyPKS/platforms/ios/MYPKS/MyPKS-Prefix.pch

shell.js: internal error
Error: EINVAL, invalid argument '/Users/amirfazwan/Documents/workspace/MyPKS/platforms/ios/MYPKS.xcodeproj'
    at Object.fs.renameSync (fs.js:543:18)
    at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/shelljs/shell.js:495:8
    at Array.forEach (native)
    at Object._mv (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/shelljs/shell.js:471:11)
    at Object.mv (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/shelljs/shell.js:1491:23)
    at pbxProject. (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/metadata/ios_parser.js:126:27)
    at pbxProject.EventEmitter.emit (events.js:98:17)
    at pbxProject. (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/xcode/lib/pbxProject.js:30:18)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at handleMessage (child_process.js:322:10)

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

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

Error: ENOENT, no such file or directory '/Users/amirfazwan/Documents/workspace/MyPKS/platforms/ios/MYPKS/MYPKS-Info.plist'
    at Object.fs.openSync (fs.js:427:18)
    at Object.fs.readFileSync (fs.js:284:15)
    at Object.exports.parseFileSync (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/plist-with-patches/lib/plist.js:18:19)
    at Object.module.exports.update_from_config (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/metadata/ios_parser.js:66:31)
    at Object.module.exports.update_project (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/metadata/ios_parser.js:189:21)
    at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/prepare.js:113:31
    at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:798:54)
    at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:827:30)
    at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:760:13)

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

Прошу вас, спасибо.


решаемые

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

wwwww

4b9b3361

Ответ 1

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

То, что произошло для меня, - это переименование названия проекта, чтобы иметь капиталы. Это вызвало всевозможные путаницы для Кордовы.

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

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

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

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

Удачи!

Ответ 2

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

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

Ответ 3

Что я решил решить, выполнив следующие

  • Удаление платформы ios; ионная платформа удалить ios
  • Удаление платформы Android; ионная платформа удалить андроид
  • Добавление платформы Ios назад; ионная платформа add ios
  • Добавление платформы Android назад; ионная платформа add android
  • Rebuild; ионная сборка

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

Ответ 4

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

<name>myApp</name>

к

<name>myApp</name>

Ответ 5

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

Например,

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

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

Ответ 6

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