CodeQL에서 Xcode 27 스캔이 막히면 어떻게 해야 할까요? 2026 해결 가이드

Xcode 27이나 Swift 6.4를 도입한 뒤 CodeQL 스캔이 실패하거나 결과가 비어 있습니다.
Swift 스캔은 지원되는 맥OS 26 이하와 Xcode 26 이하로 고정하고 Swift 6.4 적용을 미루세요. C/C++·C#·Java는 build mode none을 검증할 수 있지만, 작업이 시작됐다는 사실만으로 분석이 완전하다고 판단하면 안 됩니다.

이 안내는 GitHub Actions와 CodeQL 워크플로를 운영하며 환경 변경 뒤 스캔 장애를 해결해야 하는 IT·플랫폼 엔지니어를 위한 내용입니다.
Swift 및 iOS 프로젝트의 보안 분석을 맡거나 맥 빌드 노드의 도구 체인을 관리하는 책임자도 적용 경로를 확인할 수 있습니다.

마지막 검증: 2026년 10월 24일. 날짜와 지원 범위는 GitHub의 2026년 10월 19일 호환성 공지 및 컴파일 언어 CodeQL 문서를 기준으로 확인했습니다.

Swift 6.4 분석 작업의 복구 경로

GitHub는 CodeQL이 Swift 6.4 분석을 지원하지 않는다고 밝혔습니다. 이는 특정 맥 노드에서만 발생하는 문제가 아닙니다. 노드를 바꾸더라도 Swift 6.4 지원이 새로 생기는 것은 아닙니다. 공식 호환성 공지는 Swift 스캔을 위해 맥OS 26 이하와 Xcode 26 이하를 사용하도록 안내합니다.

따라서 Swift 컴파일이 성공해도 보안 분석까지 성공했다고 볼 수 없습니다. 컴파일러가 소스 코드를 빌드하는 일과 CodeQL이 코드를 수집해 분석 데이터베이스를 만드는 일은 서로 다른 단계입니다. Swift 6.4로 올린 직후부터 결과가 누락됐다면, 먼저 CI에서 선택한 Xcode와 실제 실행 이미지가 지원 범위에 들어오는지 확인하세요.

Swift 스캔을 지원되는 맥OS와 Xcode에 고정하는 방법

다음 순서로 점검하면 원인을 좁히고 롤백 범위를 정하기 쉽습니다.

  1. CodeQL 실행 기록에서 저장소, 작업, 사용 언어와 실패 단계를 기록합니다.
  2. 워크플로 설정뿐 아니라 실제 Runner 이미지와 선택된 Xcode 버전을 확인합니다. 설정 파일에 적힌 값만으로 실행 환경을 단정하지 마세요.
  3. Swift 스캔은 맥OS 26 이하와 Xcode 26 이하 조합으로 고정하고, Swift 6.4 도입은 보류합니다.
  4. 변경 후 같은 저장소와 같은 스캔 설정으로 다시 실행합니다. 이전 실패 실행과 결과를 비교할 수 있도록 로그와 산출물을 보관합니다.
  5. 스캔이 데이터베이스 생성과 분석 단계까지 마쳤는지 확인합니다. 마지막으로 알림 결과와 SARIF 업로드 상태를 각각 점검합니다.
  6. 실패가 계속되면 빌드 실패, 데이터베이스 생성 실패, 분석 실패, 업로드 실패를 구분해 조사합니다. 한 단계의 성공을 전체 스캔 성공으로 간주하지 않습니다.

Xcode 27 추적식 추출이 필요한 작업

GitHub 공지에 따르면 Xcode 27을 설치한 환경에서는 C/C++, C#, Go, Java, Kotlin, Swift의 추적식 추출을 사용할 수 없습니다. 따라서 Xcode 27로 바꾼 뒤 해당 언어의 스캔이 멈췄다면, 먼저 스캔이 실제로 추적식 빌드에 의존하는지 확인해야 합니다.

추적식 분석은 CodeQL이 빌드 과정을 추적해 소스와 빌드 정보를 수집하는 방식입니다. 빌드가 완료되더라도 CodeQL 추출이 진행되지 않았다면 정상적인 분석 데이터베이스가 만들어졌다고 볼 수 없습니다. GitHub의 Xcode 27 Runner 이미지 공개 안내와 호환성 공지를 함께 확인하고, 도구 체인 변경과 스캔 결과 변화가 같은 실행에서 발생했는지 대조하세요.

맥OS 27과 Xcode 27의 호환 경계

맥OS 27과 Xcode 27은 함께 점검해야 하지만 같은 제한은 아닙니다. GitHub는 맥OS 27에서 관련 추출이 불가능할 수 있다고 안내했으며, 이를 모든 프로젝트가 반드시 실패한다는 뜻으로 확대해서는 안 됩니다. 먼저 실제 Runner 이미지, 선택된 Xcode, 언어별 CodeQL 빌드 방식이 무엇인지 확인하세요.

작업 조건 먼저 확인할 항목 권장 판단
Swift 분석 맥OS와 Xcode 버전, Swift 버전 맥OS 26 이하와 Xcode 26 이하로 고정하고 Swift 6.4 적용을 보류합니다.
추적식 추출을 쓰는 C/C++, C#, Go, Java, Kotlin 또는 Swift 작업 Xcode 설치 여부와 추출 단계 로그 Xcode 27을 설치한 환경에서 추적식 추출을 전제로 한 작업은 지원되는 도구 체인으로 분리해 다시 확인합니다.
맥OS 27 Runner 작업 실제 이미지와 언어별 분석 모드 실패를 단정하지 말고 고정된 이미지에서 재실행해 데이터베이스와 분석 결과를 비교합니다.

환경을 고정할 때는 워크플로의 버전 지정과 실제 Runner 이미지가 일치하는지도 확인하세요. 업그레이드 전후 실행을 같은 브랜치와 같은 설정으로 비교하면, Xcode 변화와 운영체제 이미지 변화가 동시에 원인으로 섞이는 일을 줄일 수 있습니다.

주의: Xcode 27에서 실행된 빌드가 녹색이어도 CodeQL 추적식 추출이 성공했다는 증거는 아닙니다. 로그의 추출 단계와 생성된 데이터베이스를 별도로 확인하세요.

build mode none을 검토할 수 있는 언어

C/C++, C#, Java 작업에서는 빌드를 추적하지 않는 build mode none을 대안으로 평가할 수 있습니다. 다만 none은 추적식 추출과 자동으로 동등한 결과를 제공하는 모드가 아닙니다. 적용 전에 프로젝트의 언어별 구성과 생성 코드, 의존성 정보가 분석에 필요한 수준으로 포함되는지 검증해야 합니다.

선택지 적합성을 살펴볼 조건 검증할 위험
추적식 빌드 모드 지원되는 도구 체인에서 CodeQL이 실제 빌드를 추적할 수 있는 경우 Xcode 27이 설치된 환경에서는 공지된 추출 제한에 해당하는지 확인해야 합니다.
build mode none C/C++, C#, Java에서 빌드 추적 없이 분석하는 방안을 시험할 때 추적식 방식과 데이터베이스 내용, 생성 코드, 의존성 정보 및 알림 범위가 달라질 수 있습니다.

GitHub는 컴파일 언어의 빌드 방식과 제한을 CodeQL 빌드 옵션 문서에서 설명합니다. 문서에 none이 제시되어 있다는 사실만으로 모든 저장소에 적합하다고 판단하지 마세요. 실제 프로젝트의 분석 결과를 기준선과 비교하고, 보안 담당자가 누락된 범위를 승인할 수 있는지 확인해야 합니다.

Intel Mac을 사용하는 스캔 노드 점검

Intel Mac의 CodeQL 지원은 2026년 12월 중순에 폐지될 예정이라고 GitHub가 공지했습니다. 이는 Xcode 27 스캔 제한의 해결책이나 원인과는 별개의 변경입니다. 두 일정을 하나로 묶어 Xcode를 되돌리면 Intel Mac의 지원 일정까지 해결된다고 판단해서는 안 됩니다.

현재 Intel Mac에서 실행되는 저장소와 CodeQL 작업, 해당 작업의 대체 노드 담당자를 기록하세요. 폐지 시점이 가까워질수록 GitHub의 호환성 공지를 다시 확인하고, 대상 작업을 별도로 이전·검증할 계획을 세우는 것이 안전합니다.

스캔 완전성을 확인하는 검수 항목

환경 수정 뒤에는 파이프라인의 최종 상태만 보지 말고 각 산출물을 확인하세요. 다음 항목을 팀의 변경 검수에 포함하면 “작업 성공”과 “보안 분석 완료”를 구분할 수 있습니다.

  • [ ] 실행 로그에서 선택된 맥OS 이미지와 Xcode 버전을 확인했습니다.
  • [ ] 저장소의 스캔 언어와 사용 중인 CodeQL 빌드 모드를 기록했습니다.
  • [ ] 데이터베이스 생성 단계가 정상적으로 완료됐는지 확인했습니다.
  • [ ] 생성 코드와 의존성 정보가 분석 대상에 포함되는지 검토했습니다.
  • [ ] 분석 결과가 기대한 저장소와 언어에 대해 생성됐는지 이전 기준선과 비교했습니다.
  • [ ] 알림이 생성됐는지 확인하고, 업로드를 사용하는 경우 SARIF 파일 업로드 상태를 별도로 검수했습니다.
  • [ ] 생성 코드에서 나온 알림을 검토할 때 GitHub의 생성 코드 알림 안내를 참고해 범위와 처리 기준을 확인했습니다.

다음 운영 선택

우선 저장소 언어, 빌드 모드, Runner 이미지와 Xcode 조합을 대조하세요. Swift 작업은 지원되는 조합으로 고정하고, build mode none은 C/C++·C#·Java 각각에서 결과 범위를 검증한 뒤 승인해야 합니다.

현재 장비를 직접 운영하면 조달과 유지 관리 부담을 계속 맡게 되고, 필요한 시점에만 원격 맥 용량을 쓰는 방식은 장비를 상시 보유하는 선택과 비용 구조가 다릅니다. 반대로 물리 장치 접근이나 장기간 고정된 고부하 운영이 필요하다면 임대가 적합하지 않을 수 있습니다. 먼저 맥 활용 시나리오와 이용 요금 및 기간을 확인하고, 스캔이 실제로 맥에서 실행되어야 하는지와 보안 검수 조건을 충족하는지 비교한 뒤 KVMFLUX를 검토하세요.

스캔 환경을 안정적으로 운영할 전용 맥이 필요하신가요?

KVMFLUX의 전용 맥미니를 대여해 필요한 도구와 빌드 환경을 직접 관리해 보세요. 물리 맥을 단독으로 사용하며 원격 접속으로 점검과 빌드를 진행할 수 있습니다. 작업 일정에 맞춰 하루부터 분기까지 대여 기간을 선택하고 장비 구매 부담을 줄이세요. 대한민국을 포함한 여러 지역에서 사용할 맥을 선택하고 몇 분 안에 작업을 시작해 보세요.

Mac Mini M4 · 16GB / 256GB
일간$19.3 /일
주간$52.2 /주
월간$96.7 /월
분기$263 /분기