結論:WWDC 26(6 月 8 日)帶來了 Xcode 26 / iOS 27 SDK,卻沒有任何新款 Mac。對 iOS 團隊而言,這是標準的「軟體先行、硬體缺席」局面——CI 必須先撐過一輪快取清零 + 全量重新建置 + 託管 Runner 壅塞,建置速度不是慢 10%,而是結構性惡化。
四個疊加因素:① 升級 beta 必清 DerivedData;② iOS 27 SDK 模組更重、Swift 編譯負擔更大;③ 沒有 M5 Mac mini,算力升級路徑受阻;④ 六月全行業同時跑 CI,macos-latest 排隊時間暴增。
應避免的陷阱:把變慢歸因於「M4 不夠快」然後被動等待秋季 M5——換晶片救不了 ephemeral Runner 模型。
當下可行的解法:self-hosted Mac mini 搭配持久磁碟,把 beta 驗證與正式 release 拆成獨立 Runner 標籤;詳見 self-hosted 加速指南。
6 月 9 日(週一)早上,許多 iOS 負責人的 Slack 幾乎同時出現三則訊息:「main 昨晚 Archive 從 11 分鐘暴增到 34 分鐘」「macos-latest 排隊 18 分鐘還沒動」「裝完 Xcode 26 beta,DerivedData 消失了」。這不是個別倉庫設定出問題——WWDC 季每年都是一場 CI 地震,只是 2026 年疊加了記憶體供應吃緊、沒有新桌面 Mac,以及 Apple Intelligence 帶來的 SDK 膨脹,震感更強。硬體缺席的背景可見 M5 Mac mini 為何未現身 WWDC 26;本文只回答:為何你的流水線突然更慢,以及現在該怎麼改。
1)WWDC 後 CI 變慢的三個「標準症狀」
打開 Actions 日誌,若同時命中以下兩條或以上,基本可判定是WWDC 衝擊波,而非業務代碼突然變複雜:
- bootstrap 階段暴增:
pod install、SPM resolve、下載 iOS 27 Simulator runtime 各佔數分鐘——託管 Runner 每次 job 從零開始,這段最受衝擊。 - 建置退回「全量編譯」:升 Xcode 主版本後,ModuleCache 與 DerivedData 格式與舊版不相容,增量編譯失效,
xcodebuild時間接近冷啟動。 - 排隊時間拉長:WWDC 後 72 小時內,大量團隊同時更新 workflow 測試 beta,託管 macOS 分鐘共用池壅塞,排隊比建置本身還久。
Setup Xcode、Run script 耗時。若 Setup 從 1 分鐘變成 8 分鐘、編譯從增量變成全量——問題在工具鏈切換,不在 Swift 業務邏輯。2)Xcode 26 beta:強制「快取清零季」
Apple 在 WWDC 當天推送 Xcode 26 beta 與 iOS 27 SDK。對本機開發者,升級只是重新索引、稍等片刻;對 CI 基礎架構,這意味著整份磁碟狀態作廢:
- DerivedData 路徑與索引格式變更——舊快取無法重用,升級後第一次 Archive 必然全量建置。
- Swift 編譯器版本切換——
.swiftmodule不相容,所有 target 重新編譯。 - CocoaPods / SPM 鎖定檔案震盪——部分 Pod 尚未支援 iOS 27,
pod install反覆 resolve 或觸發完整 repo-update。 - 新 Simulator runtime——每個 runtime 數 GB,託管 Runner 每次 job 重新下載,bootstrap 直接 +5–15 分鐘。
更麻煩的組織風險是壓力驅動的 beta 採用:keynote 隔天每家公司都有人問「我們支援 Siri AI 了嗎?」——團隊在還沒準備好前就將 Xcode 26 推上 main。一條 workflow 改動,讓全公司 CI 集體進入冷啟動模式。正確做法是拆分流水線:正式 release 繼續釘在穩定版 Xcode 16;僅開 ios-27-beta 分支或專用 beta Runner 做適配工作。請參閱 Xcode 支援矩陣。
3)SDK 變胖:編譯量上升,算力沒有跟上
WWDC 26 的軟體主軸是 Siri AI 與 Apple Intelligence 擴充(MacRumors WWDC 26 摘要)。對 App 工程師而言,這通常轉化成實際的建置成本:
- 新 Framework 依賴(App Intents、視覺/語音管線封裝)——連結器圖中多了更多模組。
- Swift 6 並發檢查更嚴格——同樣的源碼,編譯器工作量增加。
- Asset Catalog 與本地化資源膨脹——Copy Bundle Resources 階段明顯變長。
在有熱快取的本機 M4 MacBook 上,這些增量可能只是「多等兩分鐘」;在沒有持久快取的託管 Runner 上,與冷啟動代價疊加,「慢」就會變成「無法接受」。諷刺的是:Apple 推的是 AI 能力,買單的卻是CI 排隊等候的開發者。
4)沒有新 Mac:算力升級路徑受阻
過往的 WWDC 週期,桌面團隊至少還能安慰自己「展後買台新 Mac mini 給 CI」。2026 年硬體零發布,M5 Mac mini 預計要等到秋季窗口,加上全球記憶體供應短缺,即便上市後 24 GB / 32 GB SKU 也可能難以取得。實際影響:
- 期望靠「買新機」解決慢建置的團隊——採購決策凍結 3–4 個月。
- 已有 M2/M3 16GB Runner 的團隊——升 SDK 後記憶體更緊,
swift-frontend與 Simulator 並行時觸發 swap,建置時間非線性惡化。 - 打算增設第二台 Runner 以提升並發——硬體交付週期趕不上 beta 適配的截止日。
這並非說 M4 不夠用——對絕大多數 iOS CI,M4 16GB 仍足夠。重點在於:WWDC 後變慢的主因根本不是晶片算力,而是執行模型(ephemeral vs. 持久磁碟)。空等 M5 是以硬體敘事掩蓋工程問題。
5)託管 Runner 的「WWDC 踩踏」
每年 6 月,GitHub 託管 macOS 池都會經歷一波需求尖峰。2026 年的特殊之處在於:AI 敘事吸引更多非 iOS 原生團隊也湧向 macOS job(跑 Core ML 轉換、測試 Apple Intelligence 範例專案),與正牌 App 上架搶同一池子。
託管 Runner 的三個結構性缺陷在 WWDC 季被放大:
| 缺陷 | 平時 | WWDC 後 |
|---|---|---|
| Ephemeral 磁碟 | 冷啟動尚可忍受 | 每次 beta job 全量下載 SDK 元件 |
| 共用排隊 | 離峰時段較好 | 工作日白天 queued >10 分鐘是常態 |
| 快取 action 失效 | DerivedData 可部分命中 | Xcode 主版本切換,cache key 全廢 |
換 macos-15、macos-latest 標籤救不了——標籤換的是 OS 映像,不是「你的 DerivedData 明天還在」。在 GitHub Actions iOS CI 加速分析中,中型 Swift 專案託管 P50 約 28 分鐘,其中排隊 + bootstrap 通常佔一半以上;WWDC 後 bootstrap 單獨 +40% 並不罕見。
6)WWDC 前後:同一倉庫的典型耗時變化(樣本)
以下為 Nuvcloud 客戶中未改 Runner 模型、僅在 main 上升 Xcode 26 beta 的 Swift/UIKit 專案(CocoaPods、單一 scheme)P50 對比,非 SLA,請以自家倉庫驗證:
| 階段 | WWDC 前 P50 | WWDC 後首週 P50 |
|---|---|---|
| queued | 5 min | 12 min |
| bootstrap | 7 min | 14 min |
| build / archive | 9 min | 16 min |
| sign + upload | 4 min | 5 min |
| 合計 | ~25 min | ~47 min |
同一倉庫在self-hosted Mac mini M4、正式 job 釘 Xcode 16、僅 beta Runner 升 Xcode 26 的設定下,正式線 P50 可維持在 WWDC 前水準;beta 線首週全量建置 20+ 分鐘屬預期,但不污染 main。這就是「拆 Runner」的價值。
7)現在該做什麼:改執行模型,別等 M5
WWDC 後 48 小時內,建議依優先順序執行:
- 正式 release 釘死 Xcode 版本——在 workflow 中寫死
xcode-select或DEVELOPER_DIR,禁止 main 自動跟隨 beta。 - beta 適配走獨立分支 + 獨立 Runner 標籤——例如
runs-on: [self-hosted, macos, xcode26-beta],與正式ios-ci隔離。 - 上 self-hosted 持久磁碟——DerivedData、Pods、SPM 跨 job 保留;第二次 beta 建置才會回落到增量時間。設定方式見 GitHub self-hosted runner 文件。
- Simulator runtime 只裝一次——在 Runner 映像中預裝 iOS 27 runtime,workflow 中不再執行
xcodebuild -downloadPlatform。 - 用 48 小時日租驗證——月租前先用 雲端 Mac mini 跑通再上生產;節點選型見 六地 Runner TCO。
8)常見疑問
WWDC 後一定要立刻升 Xcode 26 嗎? 不必。送審 App Store 仍以穩定版 Xcode 為準;beta 僅用於提前適配 iOS 27 API,且應隔離在專用流水線。
等秋季 M5 Mac mini 能一勞永逸嗎? 不能。新晶片對單次全量建置可能有 10–15% 的邊際改善,但救不了每次 job 冷啟動。記憶體供應短缺下,M5 大記憶體 SKU 可能更貴——先算 TCO,別被發表會敘事帶走。
actions/cache 快取 DerivedData 夠用嗎? WWDC 季通常不夠。Xcode 主版本切換後 cache key 失效;且上傳/下載數 GB DerivedData 的網路時間,相較持久 Runner 本機磁碟通常更不划算。
beta 不穩定導致 CI 一片紅怎麼辦? 這是預期中的情況。beta Runner 不應阻塞 main 合併;將 beta 流水線設為 optional status check,或僅排定 nightly 執行。
與去年 WWDC 相比,2026 特別在哪? 三件事疊加:AI SDK 膨脹、桌面 Mac 缺席、記憶體供應鏈緊張。單一因素都可應對;三者疊加則「慢」容易被誤判為「機器不行」,引發錯誤的硬體採購或盲目加購託管分鐘。
WWDC 帶來新 SDK,算力不必等到秋季
正式釘 Xcode 16,beta 上專用 Runner——Nuvcloud M4 Mac mini 48 小時日租試跑 → self-hosted 加速指南