【发布时间】:2014-10-06 14:01:42
【问题描述】:
我使用 Cordova CLI 3.5.0 版创建了一个项目。
我已经使用 CLI 成功地为 Android 平台部署了项目。
cordova run android
但是,我在为 iOS 部署项目时遇到问题。
cordova run ios
我遇到了这个错误:
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) 在 /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) 在句柄消息(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 的提示。
【问题讨论】:
-
您的项目中有 unicode 字符吗?也许你可以检查CB-6992。
-
@ArmNo 不,我的项目中没有任何 unicode 字符。
-
我也有同样的情况,一旦我将 config.xml 中的项目名称更改为根本不包含大写字母的名称,它就可以工作了
-
如果您很难找到“身份和类型”的位置,请使用“视图”>“实用程序”>“显示文件检查器”。欲了解更多信息,请参阅developer.apple.com/library/ios/recipes/…