簡體   English   中英

無法從cordova cli為iOS構建項目

[英]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重命名項目名稱解決。 謝謝傑森的提示。

WWWWW

只需刪除平台,然后重新添加它們。

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開發新手,我不知道如何描述如何到達那里。 我終於偶然發現了它,做出了改變,並且它奏效了!

祝你好運!

通過以下方式解決了我的問題

  1. 刪除ios平台; 離子平台刪除ios
  2. 刪除android平台; 離子平台刪除android
  3. 添加Ios平台; 離子平台添加ios
  4. 添加android平台; 離子平台添加android
  5. 重建; 離子構建

希望這有助於其他任何人。

Jason Cox的回答幫助了我 - 但我沒有重命名任何文件,我只需要在config.xml中更改應用程序的名稱

<name>myApp</name>

<name>MyApp</name>

這在Meteor 1.3.x中有效。刪除特定平台並通過控制台通過meteor命令重新添加。

對於前者

在此輸入圖像描述

meteor list-platforms
meteor remove-platform ios
meteor add-platform ios

我得到了同樣的錯誤。 之所以發生這種情況,是因為我將xml中的名稱從myapp更改為MyApp。 一旦我改回原來的名字,它再次起作用。 在xcode中重命名也是如此,謝謝你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM