Android 无法从cordova cli为iOS生成项目
我已经使用Cordova CLI 3.5.0版创建了一个项目 我已经使用CLI成功部署了Android平台的项目Android 无法从cordova cli为iOS生成项目,android,ios,xcode,cordova,Android,Ios,Xcode,Cordova,我已经使用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
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)
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)
at/usr/local/lib/node_modules/cordova/node_modules/cordova lib/node_modules/shelljs/shell.js:495:8
at Array.forEach(本机)
at 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)
在PBX项目。(/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)
在PBX项目。(/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文件,但出现了此错误
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)
错误:enoint,没有这样的文件或目录“/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_项目(/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
完成时(/usr/local/lib/node_modules/cordova/node_modules/q/q.js:798:54)
在self.promiseDispatch.done(/usr/local/lib/node\u modules/cordova/node\u modules/q/q.js:827:30)
在Promise.Promise.dispatch(/usr/local/lib/node_modules/cordova/node_modules/q/q.js:760:13)
如果从Xcode启动,该项目工作正常,但我无法再从CLI构建项目或从CLI启动“serve”命令进行调试
请引导我,谢谢
已解决 通过使用Xcode重命名项目名称来解决此问题。谢谢杰森的提示
编辑:首先尝试其他解决方案!它适用于大多数问题: 我也为此挣扎。通过反复试验最终找到了解决方案。D: 对我来说,发生的事情是将项目名称重命名为大写。这给科尔多瓦造成了各种各样的混乱 我做的第一件事是重命名有问题的plist和pch文件,以匹配正确的大小写。因此,在您的例子中,如果是myPKS,但现在是myPKS,则需要将文件重命名为myPKS-Info.plist和myPKS-Prefix.pch 然后,我不得不重命名.xcodproj以匹配大小写 之后,又发生了另一个问题: xcodebuild:错误:项目“NewName.xcodeproj”不包含名为“NewName”的目标 为了解决这个问题,我不得不重新命名目标,使其具有适当的资本化。由于我是iOS开发人员的新手,我不知道如何描述如何到达那里。我终于偶然发现了它,做出了改变,它成功了
祝你好运 只需删除平台,然后再次添加即可
cordova platform rm ios
cordova platform rm android
cordova platform add ios
cordova platform add android
解决我问题的方法是做以下几点
希望这对其他人有帮助。我也犯了同样的错误。这种情况发生在我身上的原因是我将xml中的名称从myapp更改为myapp。当我把它改回原来的名字时,它又起作用了。
在xcode中重命名也起到了作用,非常感谢。Jason Cox的回答帮助了我-但我没有重命名任何文件,我只需要在config.xml中更改应用程序的名称
<name>myApp</name>
myApp
到
MyApp
这在Meteor 1.3.x中有效
通过控制台通过meteor
命令删除特定平台并重新添加
例如
您的项目中有任何unicode字符吗?也许您可以检查一下。@ArmNo不,我在项目中没有任何unicode字符。我有相同的字符,并且在我将config.xml中的项目名称更改为完全不包含大写字母的名称后,它就起作用了。如果您很难找到“标识和类型”的位置,请使用“视图”>“实用程序”>“显示文件检查器”。有关更多信息,请参见“谢谢你,伙计!”!。我在Xcode中重命名了项目名称,现在它又能工作了。这正是我想要的!谢谢@Jason!我永远也猜不到这一点。这正是发生在我身上的事情
ionic run ios
在我的Mac CLI上运行得很好,后来我在我的config.xml中编辑了
,将第一个字母大写。从那时起,我开始出现这个错误,因为iOS模拟器无法启动。将名称编辑回下c
<name>MyApp</name>
meteor list-platforms
meteor remove-platform ios
meteor add-platform ios