我使用3.5.0版的Cordova CLI创建了一个项目。
我已经使用CLI成功地为Android平台部署了该项目。
cordova run android
但是,我在为iOS部署项目时遇到问题。
cordova run ios
我遇到此错误:
mv:目标文件已存在:/Users/amirfazwan/Documents/workspace/MyPKS/platforms/ios/MYPKS/MyPKS-Info.plist mv:目标文件已存在:/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(本机) 在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) 在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生成项目,也不能从CLI启动“ serve”命令进行调试。
请指导我,谢谢。
解决了
通过使用Xcode重命名项目名称来解决。感谢Jason的提示。
编辑:首先尝试其他解决方案!它适用于大多数问题:https : //stackoverflow.com/a/28300528/1250444
我也为此感到挣扎。最终通过反复试验找到了解决方案。D:
对我来说,发生的事情是将项目名称重命名为大写。这给科尔多瓦造成了种种混乱。
我要做的第一件事是重命名有问题的plist和pch文件以匹配正确的大小写。因此,在您的情况下,如果它是myPKS,但现在是MyPKS,则需要将文件重命名为MyPKS-Info.plist和MyPKS-Prefix.pch。
然后,我不得不重命名.xcodproj以匹配大小写。
此后,发生另一个问题:xcodebuild:错误:项目'NewName.xcodeproj'不包含名为'NewName'的目标。
为了解决这个问题,我必须将目标重命名为也具有适当的大小写。由于我是iOS开发人员的新手,所以我不知道如何描述如何到达那里。我终于偶然发现了它,进行了更改,它起作用了!
祝你好运!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句