建置主機在新加坡,編排與製品出口卻在美國或歐盟? 本文給要在遠端 Mac 上平行執行 XCTest 單元與 UI 測試 的團隊:六個常見迷思(為何本機綠燈、CI 紅燈常被誤判為不穩定)、兩張表把 M4/M4 Pro、模擬器數量、DerivedData 磁碟餘裕與租期 綁在一起,並附上可貼上的 xcodebuild 參數、磁碟檢視指令與六步 Runbook。讀完你能論證工作者數量、磁碟警示門檻,以及該調 Runner 逾時還是調整地區配置。
下文先對齊記憶體、磁碟與網路,再落到可參數化的對照表。
平行單元測試 壓 CPU 與記憶體尖峰;磁碟寫入集中在 DerivedData 索引與建置產物。快取預熱後,連結爆量與行程數常比純時脈更早成為上限。平行 UI 測試 另加模擬器繪圖、WindowServer 與暫存檔;一旦第 N 條平行跑道拉高尾延遲,加速比就不再線性。
DerivedData 成長跟模組快取、平行編譯與清理頻率連動——請把目錄大小與建置節奏當成 FinOps 訊號,而非只看月租。跨區鏈路 不會減輕本機磁碟需求,但會放大結果與日誌的尾延遲;若不區分「xcodebuild 成功」與「流水線步驟成功」,分診會指錯層級。
建議搭配 Runner 標籤與併發 一文,以及 可重現建置與 DerivedData 清單閱讀:路由工作、封住建置根目錄與限制模擬器數是三個不同旋鈕。
| 維度 | Mac mini M4(基準) | Mac mini M4 Pro(較高平行度) |
|---|---|---|
| 典型目標 | 2–4 個單元測試工作者;UI 平行度維持較低或時間切片 | 4–8 個單元測試工作者;僅在 soak 通過後再提高 UI 平行度 |
| 記憶體壓力徵兆 | Swap、模擬器開機變慢、負載下 UI 卡頓 | 相同併發下較不易 swap;磁碟 IO 仍可能成為上限 |
| 磁碟建議 | 512 GB 在多分支下很快滿;平行 + 多分支時規劃 1 TB | 平行 UI 與多版 Xcode 時優先 2 TB 或積極清理 |
| 適用情境 | 較小儲存庫、單元為主、夜間單次掃描 | 大型單一儲存庫、多組 UI 套件、頻繁 PR 建置 |
| 租期搭配 | 月租基準 + 發佈週短暫冲高 | 月租/季租鎖定以避免尖峰搶資源 |
對含 UI 的 xcodebuild test,請把 編譯平行度 與 測試平行度 拆開:可提高 -parallelizeTargets 做建置,但 -parallel-testing-enabled 與 -maximum-parallel-testing-workers 需要獨立 soak。需要圖形介面分診時,搭配 SSH 與 VNC 指南 開短暫互動視窗,而不要 24/7 把高 UI 平行度綁死在 WindowServer 上。
| 情境 | 平行策略 | 遠端 Mac 額外檢查 |
|---|---|---|
| 純單元測試、套件較短 | 以記憶體尖峰抽樣決定 中等工作者數 | 觀察 DerivedData 成長曲線 |
| 重度 UI 測試 | 低平行度 + 排隊時段;必要時拆分 scheme | 文件化模擬器清理與 WindowServer 重啟政策 |
| 單一儲存庫、多分支 | 以 Runner 標籤 隔離 並分開 DerivedData 根目錄 | 機密與併發上限請對齊 Runner 清單 |
| 全球團隊、日誌出口慢 | 維持本機測試平行度;節流匯整/上傳 | 調整 HTTP/SSH 逾時與重試;地區選擇見 多地區租賃指南 |
| 夜間全矩陣 + 日間 PR | 夜間高平行度,日間守主幹 | 離峰安排深度清理 |
# 範例:限制平行測試工作者(依專案/硬體調整——請勿盲目複製) xcodebuild test \ -scheme YourScheme \ -destination 'platform=iOS Simulator,name=iPhone 16,OS=18.4' \ -parallel-testing-enabled YES \ -maximum-parallel-testing-workers 4 \ -resultBundlePath ./TestResults.xcresult
# DerivedData/模擬器佔用稽核(門檻請自行以磁碟百分比定義) du -sh ~/Library/Developer/Xcode/DerivedData 2>/dev/null du -sh ~/Library/Developer/CoreSimulator 2>/dev/null df -h /
備註:在宣告調參完成前,請並列捕捉單工作者基準線與目前併發:總耗時、每測 P95、尖峰記憶體與磁碟寫入。
-maximum-parallel-testing-workers 上 階梯加載 2→4→6;每階需連續三次綠燈。本文回答 單台遠端 Mac 上測試要推到多兇;多地區節點指南 回答 主機放哪;零信任接入清單 回答 流量如何到達。建議閱讀順序:地區與租期 → 連線與 Runner → 平行測試容量,避免在不穩路徑上疊併發。
筆電背負休眠政策、消費級網路與修補飄移,難以承諾團隊 SLA。提高平行度會加大散熱與磁碟壓力,而該類裝置本來就不是以 CI 工作者規格設計。專用遠端 Mac 以合約把執行層與個人裝置分開,讓自動化介面更穩定。
當你需要 地區放置、峰值租期治理,以及與 OpenClaw 這類長駐 Agent 共用的乾淨主機 時,在 MACCOME 雲端 Mac 主機上跑平行測試,比把工作者堆在不穩定的筆電上更容易簽核。建議先對照 租賃價格,再依主要使用者開啟區域結帳——新加坡、東京、首爾、香港、美東 或 美西。連線分診請至 協助中心 以 SSH 或隧道關鍵字檢索。
常見問題
M4 上安全的起始平行度是多少?
請用 soak 驗證,不要抄網路口號。從兩個工作者開始抽樣記憶體與磁碟,再依上文表格調升。租期檔位請對照 Mac mini 租賃價格。
DerivedData 快滿了——先改什麼?
先降平行度避免靜默卡住,再執行清理;目錄邊界請對齊 可重現建置與 DerivedData 清單。
CI 紅、本機綠——從哪查?
把上傳/匯整逾時與測試失敗拆開;節點放置請用 多地區節點指南 核對。
不穩定暴增——要立刻擴機?
先跑單工作者對照與資源監控,排除競爭後再買更多核心或升級 M4 Pro/2 TB。