2026 企業 Mac CI:Command Line Tools-only 與完整 Xcode.app 在裸金屬 Apple Silicon 上的選型與 NVMe 佔用

裸金屬 Apple Silicon CI 常在 CLT-onlyXcode.app 間取捨:省碟、小攻擊面對上 Archive/模擬器與多數 destination。下文邊界、xcode-selectNVMe。延伸:資源池選型 FAQRunner 與 Actions Cache FAQ

一、CLT-only 與 Xcode.app:能力邊界怎麼劃

CLT 覆蓋 CLI 編譯與 lint;Xcode.appPlatforms、模擬器與完整 SDK。generic/platform=iOS 常夠用 CLT;iOS SimulatorIPA 全鏈簽署預設 Xcode.app。

口訣:少模擬器可省 Xcode,但多儲存庫 Archive 多半仍要 Xcode.app。

二、並行 Archive 與模擬器 runtime

並行 Archive 同寫 DerivedData,瓶頸在隨機寫與 codesign;鎖單一主 Xcode、獨立 ARCHIVE_PATH,重輕任務分池分時Simulator runtime 體積與大版 Xcode 同級;CLT 誤掛 runtime 卷會半成功,請版版對鎖、大版整桶換映像。

三、xcode-select 漂移

並行勿全域 xcode-select -s;每 Job 設 DEVELOPER_DIR 並建置前校驗。查 xcode-select -p、實際 DEVELOPER_DIRxcodebuild -version 對日誌。

四、NVMe 佔用與落地核對

CLT-only 常比 Xcode+runtime 小一個數量級;系統/工具鏈/DerivedData 分卷,await 升先減 Archive。勿唯讀掛 Xcode;Android SDK 分卷。真機單測可試 CLT 仍留對照機;多版靠 DEVELOPER_DIR;清 runtime 用 xcrun simctl;建置卷 80%/85% 告警。

裸金屬定標:為什麼仍推薦用 Mac mini 跑這套映像

上述分層在 macOS/Apple Silicon 最一致:統一記憶體、同廠工具鏈減「能編不能簽」。Mac mini 待機約 4W 利 7×24;Gatekeeper/SIP/FileVault 降無人值守風險。Mac mini M4 適合作對照生產的獨佔建置機——見 Macstripe 首頁 比節點;若要把方案跑在貼量產硬體,現在即可從首頁選配置租用獨佔 Mac。