CodeQL no puede rastrear compilaciones de Xcode 27 ni analizar Swift 6.4
GitHub dice que CodeQL no puede rastrear compilaciones en Xcode 27 ni analizar Swift 6.4 después de que Apple eliminara código Intel del que dependía. Su consejo: quedarse en Xcode 26 por ahora.
3 min de lectura

GitHub dijo el 19 de octubre de 2026 que CodeQL, su motor de análisis de código, no puede rastrear compilaciones hechas con Xcode 27 ni analizar código Swift 6.4 en ninguna plataforma. Para los equipos de iOS y Mac que ejecutan análisis de seguridad en su pipeline de compilación, pasar ahora a las herramientas más recientes de Apple significa perder parte de esos análisis hasta que GitHub publique el soporte.
Qué anunció GitHub
CodeQL es la herramienta que hay detrás del code scanning de GitHub. Convierte el código fuente de un proyecto en una base de datos y luego ejecuta consultas sobre ella para encontrar fallos de seguridad. En los lenguajes compilados, suele construir esa base de datos «rastreando» la compilación: observa el compilador mientras se ejecuta y registra cada archivo a medida que se compila.
Ese rastreo es lo que falla. A partir de macOS 27 y Xcode 27, Apple ya no incluye código Intel (x86_64) en algunos archivos del sistema de los que depende CodeQL, según el changelog de GitHub. Esos archivos son binarios y bibliotecas que CodeQL usa para rastrear compilaciones. El aviso lo dice sin rodeos: «CodeQL no puede admitir análisis con rastreo en estas versiones ni analizar Swift 6.4».
| Configuración | Qué dice GitHub |
|---|---|
| Xcode 27 instalado | La extracción con rastreo no está disponible para C/C++, C#, Go, Java, Kotlin ni Swift |
| macOS 27 | Es posible que la extracción con rastreo no esté disponible para los mismos seis lenguajes |
| Swift 6.4 | Sin soporte en ninguna plataforma |
| Mac con procesador Intel | Soporte de CodeQL declarado obsoleto a mediados de diciembre de 2026 |
El changelog no da ninguna fecha para el soporte de Swift 6.4.
Por qué actualizar Xcode trae consigo Swift 6.4
El problema de Swift es difícil de evitar para un equipo que actualiza sus herramientas. La página de requisitos de Xcode de Apple enumera tres versiones actuales: Xcode 27, Xcode 27.1 y la beta 3 de Xcode 27.2. Las tres incluyen el compilador de Swift 6.4. Las tres necesitan un Mac con macOS Tahoe 26.6 o posterior.
Así que no existe ninguna versión de Xcode 27 que mantenga un compilador de Swift anterior. Pasar a Xcode 27 significa pasar a Swift 6.4, la versión que trajo async defer e hizo de Swift Build la opción por defecto. También significa perder el análisis de Swift de CodeQL. Eso importa para las apps que necesitan el propio Xcode 27. La versión candidata de Xcode 27.1, por ejemplo, es la que abrió el envío a la App Store de apps para iPhone Duo.
Las soluciones que propone GitHub
El aviso de GitHub enumera tres formas de mantener los análisis en marcha:
- Fija las herramientas anteriores. Los flujos de trabajo que analizan Swift, o que dependen de compilaciones con rastreo, deben ejecutarse en macOS 26 o anterior con Xcode 26 o anterior.
- Fija el runner y la toolchain. En GitHub Actions, define de forma explícita la imagen del runner y la versión de la toolchain, para que una actualización de imagen no pueda llevar un análisis a Xcode 27 sin aviso.
- Evita el rastreo cuando sea posible. Para C/C++, C# y Java, usa el modo de compilación «none» de CodeQL. En ese modo, CodeQL lee directamente los archivos fuente en lugar de observar una compilación, así que el código Intel que falta no importa.
El aviso ofrece el modo de compilación «none» solo para esos tres lenguajes. Para Swift, su único consejo es quedarse en Xcode 26 o anterior.
Qué significa para los desarrolladores
El riesgo aquí es un análisis que sigue ejecutándose pero que, sin avisar, deja de cubrir tu código. Merece la pena hacer algunas comprobaciones esta semana:
- Averigua en qué se ejecuta de verdad tu tarea de análisis. Si un flujo de trabajo de CodeQL usa una etiqueta de runner flotante en lugar de una imagen fijada, comprueba qué versiones de macOS y Xcode recibe hoy. Después fíjalas, como recomienda GitHub.
- Lee los registros del análisis, no solo el resultado. Una marca de verificación verde significa que la tarea terminó. No demuestra que se analizaran los archivos Swift. Revisa el paso de extracción en el registro y confirma que tus fuentes Swift aparecen en él.
- Separa la compilación del análisis. Los equipos que deben publicar con Xcode 27 pueden seguir compilando sus versiones con él. Pueden ejecutar la tarea de CodeQL por separado en un runner fijado con macOS 26 y Xcode 26. Eso solo funciona mientras el código siga compilando con Xcode 26, así que adoptar funciones exclusivas de Swift 6.4 pone fin a esa opción.
- Planifica ya lo de los runners Intel. Los runners Mac Intel autoalojados pierden el soporte de CodeQL a mediados de diciembre de 2026. Presupuesta máquinas con Apple silicon antes de esa fecha.
- Vigila las próximas notas de versión de CodeQL. La versión 2.27.1 añadió una consulta de C++ y empezó a leer los archivos de bloqueo de Actions. El soporte de Swift 6.4 llegaría de la misma forma, y ese es el momento de dejar de fijar versiones.
Fuentes
- CodeQL changes for macOS 27, Xcode 27, and Swift 6.4 - GitHub Changelog
- Xcode SDKs and system requirements - Apple Developer
Artículos relacionados

Xcode 27.1 RC abre la App Store a las apps para iPhone Duo
Apple ya acepta apps para iPhone Duo compiladas con Xcode 27.1, 18 días antes de que el plegable llegue a los clientes el 23 de octubre. Las capturas de pantalla para Duo serán obligatorias en abril de 2027.

Apple endurece Full Disk Access en macOS por los agentes de IA
Apple dijo el 2 de octubre que las apps de Mac necesitarán una "acción muy explícita del usuario" para obtener Full Disk Access, porque los agentes de IA hacen que ese acceso sea más arriesgado.

CodeQL 2.27.1 añade una consulta de C++ y lee archivos de bloqueo de Actions
CodeQL 2.27.1 trae 498 consultas de seguridad por defecto que cubren 170 CWE, una nueva comprobación de C/C++, soporte para Kotlin 2.4.20 y reconoce los archivos de bloqueo de Actions.