[英]Cannot build project for iOS from cordova cli
我使用Cordova CLI 3.5.0版创建了一个项目。
我已经使用CLI成功部署了Android平台项目。
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项目以添加Icon&splash屏幕后才会出现此问题,因为即使在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构建项目或从CLI启动“serve”命令以进行调试。
请指导我,谢谢。
解决了
通过使用Xcode重命名项目名称解决。 谢谢杰森的提示。
只需删除平台,然后重新添加它们。
cordova platform rm ios
cordova platform rm android
cordova platform add ios
cordova platform add android
编辑:首先尝试这个其他解决方案! 它适用于大多数问题: https : //stackoverflow.com/a/28300528/1250444
我也在努力解决这个问题。 最后通过反复试验找到了解决方案。 d:
对我来说发生的事情是将项目名称重命名为大写字母。 这给科尔多瓦造成了各种各样的困惑。
我做的第一件事是重命名有问题的plist和pch文件以匹配正确的大小写。 因此,在您的情况下,如果它是myPKS,但现在是MyPKS,则需要将文件重命名为MyPKS-Info.plist和MyPKS-Prefix.pch。
然后我不得不重命名.xcodproj以匹配大小写。
之后,又出现了另一个问题:xcodebuild:error:项目'NewName.xcodeproj'不包含名为'NewName'的目标。
为了解决这个问题,我不得不重命名目标以获得适当的大小写。 由于我是iOS开发新手,我不知道如何描述如何到达那里。 我终于偶然发现了它,做出了改变,并且它奏效了!
祝你好运!
通过以下方式解决了我的问题
希望这有助于其他任何人。
Jason Cox的回答帮助了我 - 但我没有重命名任何文件,我只需要在config.xml中更改应用程序的名称
<name>myApp</name>
至
<name>MyApp</name>
我得到了同样的错误。 之所以发生这种情况,是因为我将xml中的名称从myapp更改为MyApp。 一旦我改回原来的名字,它再次起作用。 在xcode中重命名也是如此,谢谢你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.