[英]Cannot build project for iOS from cordova cli
我使用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&splash屏幕后才會出現此問題,因為即使在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構建項目或從CLI啟動“serve”命令以進行調試。
請指導我,謝謝。
解決了
通過使用Xcode重命名項目名稱解決。 謝謝傑森的提示。
只需刪除平台,然后重新添加它們。
cordova platform rm ios
cordova platform rm android
cordova platform add ios
cordova platform add android
編輯:首先嘗試這個其他解決方案! 它適用於大多數問題: https : //stackoverflow.com/a/28300528/1250444
我也在努力解決這個問題。 最后通過反復試驗找到了解決方案。 d:
對我來說發生的事情是將項目名稱重命名為大寫字母。 這給科爾多瓦造成了各種各樣的困惑。
我做的第一件事是重命名有問題的plist和pch文件以匹配正確的大小寫。 因此,在您的情況下,如果它是myPKS,但現在是MyPKS,則需要將文件重命名為MyPKS-Info.plist和MyPKS-Prefix.pch。
然后我不得不重命名.xcodproj以匹配大小寫。
之后,又出現了另一個問題:xcodebuild:error:項目'NewName.xcodeproj'不包含名為'NewName'的目標。
為了解決這個問題,我不得不重命名目標以獲得適當的大小寫。 由於我是iOS開發新手,我不知道如何描述如何到達那里。 我終於偶然發現了它,做出了改變,並且它奏效了!
祝你好運!
通過以下方式解決了我的問題
希望這有助於其他任何人。
Jason Cox的回答幫助了我 - 但我沒有重命名任何文件,我只需要在config.xml中更改應用程序的名稱
<name>myApp</name>
至
<name>MyApp</name>
我得到了同樣的錯誤。 之所以發生這種情況,是因為我將xml中的名稱從myapp更改為MyApp。 一旦我改回原來的名字,它再次起作用。 在xcode中重命名也是如此,謝謝你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.