结论:WWDC 26(6 月 8 日)给了 Xcode 26 / iOS 27 SDK,却没给任何新 Mac。对 iOS 团队来说,这是典型的「软件先走、硬件缺席」——CI 要先扛一轮缓存清零 + 全量重编 + 托管 Runner 踩踏,构建速度不是慢 10%,而是结构性恶化。
四个叠加因素:① 升 beta 必清 DerivedData;② 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 从零开始,这段最惨。 - build 段回到「全量编译」:升 Xcode 大版本后 ModuleCache / DerivedData 不兼容,增量编译失效,
xcodebuild时间接近冷启动。 - queued 段变长:WWDC 后 72 小时内,大量团队同时改 workflow 试 beta,托管 macOS 分钟 共享池拥堵,排队比编译还久。
Setup Xcode、Run script 耗时。若 Setup 从 1 分钟变成 8 分钟、编译从增量变成全量——问题在工具链切换,不在 Swift 业务逻辑。2)Xcode 26 beta:强制「缓存清零季」
苹果在 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——单个体积数 GB,托管 Runner 每次下载,bootstrap 直接 +5–15 分钟。
更麻烦的是组织内部的「跟风升级」:老板在 keynote 后问「我们有没有用上 Siri AI」,团队被迫在 main 上切 beta——一条 workflow 改动,全公司 CI 集体进入冷启动模式。正确做法是拆流水线:生产 release 继续钉在 Xcode 16 稳定版;仅开 ios-27-beta 分支或专用 beta Runner 做适配。详见 Xcode 支持矩阵。
3)SDK 变胖:编译量上去,芯片却没换
WWDC 26 的软件叙事是 Siri AI 与 Apple Intelligence 扩展(MacRumors recap)。对 App 工程而言,这通常转化为:
- 新 Framework 依赖(App Intents、视觉/语音管线封装)——多几个 module 参与链接。
- Swift 6 并发检查更严——同样代码,编译器工作量增加。
- Asset Catalog、本地化资源膨胀——Copy Bundle Resources 阶段变长。
这些增量在本地 M4 MacBook 上可能只是「多等两分钟」;在没有持久缓存的托管 Runner 上,会与冷启动叠加,体感从「慢」变成「不可接受」。讽刺的是:苹果推的是 AI 能力,买单的却是编译队列里的开发者。
4)没新 Mac:算力升级路径被堵死
历届 WWDC,桌面团队至少还能期待「会后买台新 Mac mini 给 CI」。2026 年硬件零发布,M5 Mac mini 要等到秋季传闻窗口,且全球内存短缺让 24GB / 32GB SKU 本就难买。结果是:
- 想靠「买新机」解决慢编译的团队——采购决策冻结 3–4 个月。
- 已有 M2/M3 16GB Runner 的团队——升 SDK 后内存更紧,
swift-frontend与 Simulator 并行时 swap,编译时间非线性恶化。 - 打算加第二台 Runner 扩并发——硬件交付周期赶不上 beta 适配 deadline。
这不是说 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 min 常见 |
| 缓存 action 失效 | DerivedData 可部分命中 | Xcode 大版本切换,cache key 全废 |
换 macos-15、macos-latest 标签救不了——标签换的是镜像,不是「你的 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 版本——
xcode-select或DEVELOPER_DIR写死在 workflow,禁止 main 自动跟 beta。 - beta 适配走独立分支 + 独立 Runner label——例如
runs-on: [self-hosted, macos, xcode26-beta],与生产ios-ci隔离。 - 上 self-hosted 持久磁盘——DerivedData、Pods、SPM 跨 job 保留;第二次 beta build 才会回落。注册方式见 GitHub self-hosted runner 文档。
- Simulator runtime 只装一次——在 Runner 镜像里预装 iOS 27 runtime,workflow 里别再
xcodebuild -downloadPlatform。 - 48h 日租验证——不确定是否值得月租前,用 云端 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 merge;把 beta 流水线设为 optional status check,或仅 nightly 跑。
和去年 WWDC 比,2026 特别在哪? 三件叠加:AI SDK 膨胀、桌面 Mac 缺席、内存供应链紧张。单独任一都可应对;叠加则「慢」被误判为「机器不行」,引发错误的硬件采购或盲目加托管分钟。
WWDC 给了新 SDK,算力不必等秋季
生产钉 Xcode 16,beta 上专用 Runner——Nuvcloud M4 Mac mini 48h 日租试跑 → self-hosted 加速指南