[Cordova] 編譯 iOS 出現 ‘xcodebuild’ requires Xcode 的錯誤訊息

[Cordova] 編譯 iOS 出現 ‘xcodebuild’ requires Xcode 的錯誤訊息

自己寫的「圖書館多重帳戶」app 一直都只有 ChromeAndroid 版本,

今天想來編譯一下 Cordova 的 iOS 版本時,

又遇到了一些和先前遇過不同的問題…

這些是之前編譯與除錯 iOS 時曾遇到的問題:

 

來記錄一下這次遇到的問題吧~

 

1. Cordova 專案中缺少 iOS 平台支援

在執行 cordova build ios 之後,出現了錯誤訊息

The platform “ios” does not appear to have been added to this project:

testuser@localhost ~ $ cordova build --debug ios

(node:16131) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: The platform "ios" does not appear to have been added to this project.

 

這是因為我之前移掉了 ios 的 platform~

執行 cordova platform 可以看到目前專案中只安裝了 android 平台支援:

testuser@localhost ~ $ cordova platform

Installed platforms:
  android 6.2.3
Available platforms:
  browser ~5.0.1
  ios ~4.5.4
  osx ~4.0.1
  windows ~5.0.0
  www ^3.12.0

 

只要把 ios 平台支援加上就好了:

cordova platform add ios

 

2. 找不到完整的 Xcode

繼續執行 cordova build ios,又出現了另一個錯誤訊息

tool ‘xcodebuild’ requires Xcode, but active developer directory

‘/Library/Developer/CommandLineTools’ is a command line tools instance

這個還真的有點搞不懂是在做什麼:

testuser@localhost ~ $ cordova build --debug ios

(node:16169) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

 

不過我這台 Mac 的確是還沒安裝 Xcode…

先到 Mac 的 App Store 搜尋 Xcode 來安裝~

裝好之後,記得要執行一次 Xcode,

它還會繼續安裝其他的元件:

 

註:如果裝好 Xcode 後沒有先執行一次,

執行 cordova build ios 可能會出現找不到模擬器的錯誤訊息,

執行過 Xcode 後就會消失了:

testuser@localhost ~ $ cordova build --debug ios

(node:99278) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Command failed: xcrun simctl list --json
dyld: Library not loaded: /Library/Developer/PrivateFrameworks/CoreSimulator.framework/Versions/A/CoreSimulator
  Referenced from: /Applications/Xcode.app/Contents/Developer/usr/bin/simctl
  Reason: image not found

 

但 Xcode 裝好之後,還是會出現 ‘xcodebuild’ requires Xcode 的錯誤訊息…

查了一下,是說預設的 /Library/Developer/CommandLineTools 目錄下,

並沒有完整的 Xcode,但 cordova build ios 需要的是完整的 Xcode。

因此要執行下面的指令,切換到剛裝好的 Xcode 路徑上:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

 

這時再執行 cordova build ios,就沒有問題了:

testuser@localhost ~ $ cordova build --debug ios

Building for iPhone X Simulator
......
** BUILD SUCCEEDED **

 

參考資料:

stackoverflow: xcode-select active developer directory error

(本頁面已被瀏覽過 5,293 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料