Apple 將 Xcode 可選元件與模擬器執行階段的管理列在 Components 相關說明中;因此,本週建議先把故障定位在下載、安裝或執行目標識別其中一段,再依證據處理,不要一開始就刪除系統資產目錄或重裝 Xcode。Apple 的元件管理說明提供了核對入口,但實際可下載版本仍須以你目前的 Xcode 為準。
這篇適合因缺少 iOS 27 模擬器執行階段而無法啟動執行目標的獨立開發者。
使用遠端 Mac 或 CI 執行 Xcode 測試的小團隊,可用本文核對實際建置環境。
剛升級 Xcode、專案仍顯示沒有可用模擬器的開發者,也能藉此區分 runtime 缺失與工具鏈選錯。
SECTION 01 先確認 iOS 27 模擬器執行階段下載失敗在哪一段
先記錄錯誤發生時的畫面與命令輸出,再決定下一步。下載未開始或中斷,與安裝完成卻沒有執行目標,是不同問題;相同的「找不到模擬器」表象,不能直接推論為網路故障或專案程式碼錯誤。
| 故障階段 | 你看到的現象 | 首要證據 | 暫停條件 |
|---|---|---|---|
| 下載 | 元件未開始下載、進度停住或顯示失敗 | Xcode 的 Components 狀態、原始錯誤訊息 | 狀態仍在變化時先不要重複啟動下載 |
| 安裝 | 下載似乎完成,但安裝報錯或執行階段未列出 | 安裝錯誤、目前選用的 Xcode 路徑、runtime 清單 | 尚未保存錯誤資訊前不要清理或覆寫產物 |
| 識別 | runtime 已安裝,但 Scheme 或執行目標沒有相應裝置 | Xcode 執行目標清單、命令列 runtime 清單 | 清單不一致時,先確認兩者使用同一個 Xcode |
開始排查時,先在發生問題的 Mac 上記下 Xcode 版本、目前選用的開發者目錄、Components 顯示狀態,以及完整錯誤文字。Apple 說明 Xcode 可在 Components 管理可選元件與模擬器執行階段;但這不代表每個 Xcode 版本都會提供相同 runtime,應再核對 Xcode 系統需求與支援資訊。
可用以下命令收集基本線索;xcode-select -p 回報目前命令列工具所指向的開發者目錄,xcodebuild -version 則用來確認該環境中的 Xcode 版本:
xcode-select -p
xcodebuild -version
命令列工具的選擇方式與 Xcode 設定有關,請對照 Apple 的命令列工具設定說明。若畫面中的 Xcode 與命令回報的目錄不一致,先處理工具鏈選擇,再判斷 runtime 是否真的缺失。
SECTION 02 下載停住或失敗時,先核對元件狀態
Xcode 27 下載 iOS 27 模擬器執行階段失敗,第一步該查什麼?
先看 Xcode 的 Components 頁面是否列出目標平台與執行階段,並確認狀態是等待、進行中、失敗,還是已取消。若清單沒有該項目,不要立刻用其他版本的 runtime 套用;先核實目前 Xcode 是否支援該平台,以及 Apple 當下提供的元件版本。
如果 Components 明確顯示下載失敗,保留錯誤訊息與失敗時間,再依 Apple 文件提供的命令列途徑嘗試下載。Apple 的相關文件說明可用 xcodebuild 管理平台執行階段;實際參數與可用版本應依你安裝的 Xcode 及命令列工具參考確認,而不要照搬其他 Xcode 版本的指令。
例如,文件支援的下載形式可按當前版本核對如下:
xcodebuild -downloadPlatform iOS
執行前先確認終端機指向預期的 Xcode,並檢查該 Xcode 是否列出目標平台。若指令不接受參數、平台未列出,或下載回報的版本與預期不同,先停止重試並回到元件清單與版本支援狀態;不要反覆下載,也不要把一次命令失敗當成 iOS 27 普遍故障的證據。
下載仍在進行時,不要同時從多個入口重複啟動同一項作業。若狀態明確失敗,可保存錯誤後再依文件重試;若狀態顯示已完成,轉到安裝核驗,不必只因 Xcode 沒有裝置就重新下載。
SECTION 03 安裝未完成時,分開檢查下載產物與工具鏈
安裝錯誤要按發生點拆解。下載產物可能未完整取得,安裝流程也可能尚未完成;此外,runtime 已安裝在另一個 Xcode 環境時,當前工具鏈仍可能看不到它。這些情況的處理方式不同,不能把重新下載當成通用修復。
命令列下載後,怎麼確認拿到的是哪個 iOS Simulator Runtime?
先閱讀下載命令的完整輸出,再在同一台 Mac、同一個開發者目錄下列出已識別的 runtime。xcrun simctl list runtimes 可作為核對線索;若下載工具另有匯出或安裝步驟,依目前 Xcode 文件完成後再查清單。命令列工具選項可能隨 Xcode 版本而異,應以Apple 命令列工具參考為準。
xcode-select -p
xcodebuild -version
xcrun simctl list runtimes
把輸出與下載日誌放在一起看:若預期 runtime 不在清單中,安裝可能未完成,或目前使用的工具鏈不同;若 runtime 已列出但沒有裝置,則進入執行目標識別排查。若要匯入或重新安裝下載產物,先確認 Apple 文件中的操作適用於你目前的 Xcode,並保存原始日誌。
不要在尚未判斷影響範圍時移除 runtime、清空相關資料夾或切換全域開發者目錄。移除可能影響同一環境中其他專案使用的模擬器;切換目錄則會改變命令列工具使用的 Xcode。若確實需要清理,先確認項目屬於哪個 Xcode、保存可重現的錯誤與清單,並記下如何還原原本的工具鏈;若這些資訊無法確認,就先停止清理,交由環境管理者處理。
SECTION 04 Runtime 已安裝但沒有裝置時,核對識別條件
模擬器執行階段安裝完成,為什麼 Xcode 仍沒有可用裝置?
runtime 存在不等於目前專案已有合適的執行目標。先檢查 Xcode 執行目標列表,再確認 Scheme 面向 iOS、目前選用的 Xcode 與安裝 runtime 的 Xcode 一致,最後用命令列清單交叉比對。Apple 的模擬器或實體裝置執行指南可用來核對執行方式與目標選擇。
| 核對結果 | 判斷方向 | 下一步 |
|---|---|---|
| Xcode 與命令列都沒有目標 runtime | 尚未安裝完成,或此 Xcode 未提供該 runtime | 回 Components 和支援資訊核對,再按文件安裝 |
| 命令列列出 runtime,Xcode 執行目標沒有裝置 | Scheme、Xcode 選擇或模擬器裝置註冊需要再查 | 確認同一個開發者目錄與 iOS Scheme,再刷新目標列表 |
| Xcode 有裝置,但專案不能執行 | 問題可能在建置設定、相容性或程式碼 | 先記錄建置錯誤,不要再重裝 runtime |
Apple 亦提供管理額外模擬器的說明,可參照模擬器管理文件。建立模擬器裝置與安裝 Simulator Runtime 是不同環節:裝置未建立,不等於 runtime 下載失敗;反過來,裝置列表有項目,也不能單獨證明專案的 Scheme 與目標相容。
若 Xcode 顯示的執行目標與 simctl 清單不一致,先重新確認 xcode-select -p 的結果;不要為了讓單一專案出現裝置,就直接改動全域開發者目錄。必要時以明確指定開發者目錄的方式做一次受控比對,完成後再恢復原設定,避免其他專案或 CI 工作受到影響。
SECTION 05 遠端 Mac 與 CI 要以實際執行端為準
遠端 Mac 上的 Xcode 找不到已安裝的模擬器執行階段,該從哪裡查?
在真正執行建置或測試的遠端 Mac 上,收集 Xcode 版本、xcode-select -p 結果與 xcrun simctl list runtimes 輸出。你用來連線的本機電腦只負責操作介面,不能代表遠端主機已安裝相同 runtime,也不能證明 CI Runner 選用了相同 Xcode。
排查時把本機、遠端 Mac 與 CI Runner 分開記錄,不要把三者的資訊混成一份:
- 在每個實際執行建置的環境確認 Xcode 版本與開發者目錄。
- 在該環境查看 runtime 清單,以及 Xcode 執行目標是否出現相應裝置。
- 對照 CI 工作日誌,確認失敗工作實際執行在哪個 Runner,而非只看觸發工作的控制端。
- 若你沒有遠端主機的安裝權限,將命令輸出、錯誤原文和執行工作位置交給環境維護者,不要自行清理共用環境。
遠端建置與本機操作方式不同時,可先參照VPSNIX 遠端 Mac 環境說明整理要核對的連線端、執行端與工具鏈。此處不預設任何遠端環境已提供特定 Xcode 或 iOS 27 runtime;可用版本與安裝方式必須由實際主機資訊確認。
SECTION 06 恢復後按里程碑驗收,再決定是否換環境
依序完成以下檢查;每項都能由你正在使用的 Mac 或 CI 執行端實際驗證:
- [ ] 基線已留存:記錄 Xcode 版本、開發者目錄、Components 狀態與原始錯誤。
- [ ] 下載已核實:確認目標平台由目前 Xcode 提供,下載工作已完成,而非仍在等待或已取消。
- [ ] 安裝已核實:在執行建置的環境確認 runtime 出現在命令列清單中。
- [ ] 識別已核實:確認 Xcode 執行目標列表有預期裝置,且 Scheme 面向 iOS。
- [ ] 專案已驗收:以專案執行一次建置與啟動,分別保存建置結果與啟動結果。
- [ ] 實機限制已確認:把模擬器結果與需要實體硬體的功能測試分開安排。
Apple 說明可在模擬或實體裝置上執行 App,相關差異可參照執行目標指南。模擬器通過只能證明這次測試在該模擬環境下完成,不能取代需要實體 iPhone、硬體感測器或真實網路條件的驗證。
若故障只在遠端建置出現,先請維護者核對該主機的 Xcode 與 runtime 清單。自行維護 Mac 的優點是硬體與工具鏈由你掌握,但需承擔採購、更新及磁碟管理;臨時借用其他環境可能遇到版本不一致、權限不足與狀態難重現。若你需要一台可持續遠端存取的 macOS 測試環境,VPSNIX 租用方案可作為避免先購置實體 Mac 的選項;下決定前,先確認所需 Xcode 與 runtime 是否能在實際環境取得,再查看VPSNIX 方案資訊。若你需要長期固定負載、實體連接埠或自行控制硬體,則應先比較自購 Mac 與租用環境的維護責任,不必為短期排錯勉強更換工作方式。