我使用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&自图标&即使在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重命名项目名称来解决。谢谢杰森的提示。
答案 0 :(得分:23)
只需删除平台,然后重新添加即可。
cordova platform rm ios
cordova platform rm android
cordova platform add ios
cordova platform add android
答案 1 :(得分:21)
编辑:首先尝试这个其他解决方案!它适用于大多数问题:https://stackoverflow.com/a/28300528/1250444
我也在努力解决这个问题。最后通过反复试验找到了解决方案。 d:
我发生的事情是将项目名称重命名为大写字母。这给科尔多瓦带来了各种各样的困惑。
我做的第一件事是重命名有问题的plist和pch文件以匹配正确的大小写。因此,在您的情况下,如果它是myPKS,但现在是MyPKS,则需要将文件重命名为MyPKS-Info.plist和MyPKS-Prefix.pch。
然后,我必须重命名.xcodproj以匹配大小写。
之后,另一个问题发生了: xcodebuild:错误:项目'NewName.xcodeproj'不包含名为'NewName'的目标。
要解决这个问题,我必须重命名目标以获得适当的大小写。由于我是iOS开发新手,我不知道如何描述如何到达那里。我终于偶然发现了它,做出了改变,它起作用了!
祝你好运!
答案 2 :(得分:2)
通过以下方式解决了我的问题
希望这有助于其他任何人。
答案 3 :(得分:1)
Jason Cox的回答帮助了我 - 但我没有重命名任何文件,我只需要在config.xml中更改应用程序的名称
<name>myApp</name>
到
<name>MyApp</name>
答案 4 :(得分:1)
这适用于Meteor 1.3.x.
删除特定平台并通过控制台通过meteor
命令重新添加。
对于前。
meteor list-platforms
meteor remove-platform ios
meteor add-platform ios
答案 5 :(得分:0)
我得到了同样的错误。之所以发生这种情况,是因为我将xml中的名称从myapp更改为MyApp。一旦我改回原来的名字,它再次起作用。 在xcode中重命名也很有效,谢谢你。