혜택

WWDC 2026 이후 CI 붕괴: macOS beta가 iOS 빌드 안정성을 깨는 이유와 격리 방법

CI iOS 빌드 · WWDC 2026
2026-06-09 약 5분

빌드 지연, 간헐적 서명 실패, 동일 commit 재실행 통과 — 대부분 코드 문제가 아닙니다. macOS beta가 CI에 섞였습니다. 메인 CI 고정, beta는 전용 Mac mini에서 검증.

30초 요약

  1. 근본 원인: macOS beta가 이제 CI 실행 레이어의 일부입니다. 부가 테스트 이미지가 아닙니다.
  2. 증상: 동일 commit이 로컬 통과 → CI 실패 → 재실행 통과. flaky test로 치지 마세요.
  3. 해결: 프로덕션 CI는 안정 macOS 유지. beta는 전용 Mac mini에서만 돌리고 PASS/FAIL만 반환.
WWDC 2026 이후 macOS beta가 iOS CI 안정성에 미치는 영향

1. 무엇이 바뀌었나

WWDC 2026 이후 macOS 27 betaXcode 18 beta는 한 세트로 배포됩니다. 새 SDK를 검증하려면 CI 호스트도 beta 트랙에 올라야 하므로 파이프라인은 더 이상

code → build → test → artifact

가 아니라 다음과 같아집니다:

code + Xcode beta + macOS beta + Simulator + Keychain → build

문제는 diff가 아닙니다. beta가 런타임이 되었고, beta는 매주 바뀝니다.

2. 네 가지 실패 모드 (WWDC 이후)

메커니즘현장에서 보이는 것
Xcode가 macOS beta에 묶임Runner에서 버전 고정 불가. 로컬 안정판 vs CI beta 불일치
시뮬레이터 지터콜드 부트 +30–80%, UI 테스트 타임아웃, 커널 스케줄링 변동
서명 / Keychain 드리프트간헐적 codesign 실패 후 재시도 통과 — 서명 가이드
Swift 툴체인 강화증분 빌드 누락. clean build 필요

3. 익숙한 증상

  • 시간 드리프트: 동일 commit에서 xcodebuild가 18분→37분으로 튐
  • 결과 드리프트: 로컬 성공 → CI 실패 → 재실행 성공 (환경 노이즈, 테스트 flakiness 아님)
  • 거짓 안심: CPU 유휴, 스택 트레이스 없는데 테스트가 랜덤 실패

이는 CI가 로컬보다 2–3배 느린 이유 와 다릅니다. 그건 캐시 튜닝이고, 여기는 OS 수준 불확실성 — YAML로는 해결 안 됩니다.

4. 해결: beta 실행 격리

프로덕션 CI에 beta 설치 금지. 일회용 Mac mini에서 실행하고 결과만 스트리밍.

안정 CI (릴리스 macOS + Xcode)
        ↓
원격 Mac mini (beta 전용)
        ↓
PASS / FAIL + IPA 반환

네 단계:

  1. beta 전용 Mac mini 프로비저닝 (별도 사용자 + Keychain)
  2. 메인 Runner는 안정 macOS에 고정 (merge / release)
  3. 격리 노드에 beta 스택 설치. [beta, ios] 라벨 또는 야간 SSH 트리거
  4. 결과만 반환 — beta 캐시를 프로덕션 Runner에 마운트하지 않음

Runner 라벨은 Mac mini 셀프호스팅 Runner 가이드. 릴리스 스프린트 beta 매트릭스는 임시 빌드 매트릭스 참고.

5. 어떤 선택이 맞나

접근안정성판정
일상 Mac에 beta❌ Keychain 오염, 롤백 어려움
GitHub-hosted runner⚠️ 큐 대기 + beta 이미지 지연⚠️ 보조용
VM / 스냅샷❌ 시뮬레이터 GPU 불안정
원격 Mac mini beta 노드✅ 격리·폐기 가능

6. FAQ

macOS beta가 CI에 영향을 주나요?

예. 시뮬레이터, 툴체인 기본값, 서명이 드리프트해 동일 commit 결과가 뒤집힙니다.

일상 Mac에서 beta CI를 돌려도 되나요?

개인 실험은 가능. 공유·프로덕션 빌드 머신은 피하세요.

GitHub Actions만으로 충분한가요?

큐는 완화되지만 beta 비결정성은 제거 못 합니다.

베스트 프랙티스는?

전용 beta Mac mini + 메인 CI 고정. WWDC 이후 핵심은 통제 불가 환경이지 '빌드 실패'가 아닙니다.

48시간 격리 검증

메인 Runner 고정 → 동일 commit 야간 beta 노드 → PASS율 비교. 메인 안정·beta 지터면 분리 성공. 온보딩 체크리스트 · 요금제