裸金屬 Apple Silicon CI 常在 CLT-only 與 Xcode.app 間取捨:省碟、小攻擊面對上 Archive/模擬器與多數 destination。下文邊界、xcode-select、NVMe。延伸:資源池選型 FAQ、Runner 與 Actions Cache FAQ。
一、CLT-only 與 Xcode.app:能力邊界怎麼劃
CLT 覆蓋 CLI 編譯與 lint;Xcode.app 帶 Platforms、模擬器與完整 SDK。generic/platform=iOS 常夠用 CLT;iOS Simulator 或IPA 全鏈簽署預設 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_DIR、xcodebuild -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。