Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法从cordova cli为iOS生成项目_Android_Ios_Xcode_Cordova - Fatal编程技术网

Android 无法从cordova cli为iOS生成项目

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 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) 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

解决我问题的方法是做以下几点

  • 移除ios平台;离子平台移除ios
  • 移除android平台;离子平台移除android
  • 重新添加Ios平台;离子平台添加ios
  • 重新添加android平台;离子平台添加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