Xcode 27 ya salió: requisitos, deployment targets y lo que se rompió

Xcode 27 salió el 14 de septiembre de 2026 como build 27A266a, tres días después del ítem “iOS 27.0 RC” del feed y junto con iOS 27.0 (24A437), macOS 27.0 (26A428) y el resto de las plataformas 27; App Store Connect empezó a aceptar ese mismo día builds hechos con los SDK 27.0 finales (GA), después de haber recibido builds con los SDK RC desde el 9 de septiembre.15 Requiere macOS Tahoe 26.6 o posterior y una Mac con Apple silicon, incluye Swift 6.4 y los SDK 27, depura dispositivos con iOS 17 o posterior, y sube tres pisos de despliegue: macOS 12, watchOS 9 y DriverKit 21.23 Para los proyectos existentes trae tres fallos duros (la macro @State, una ruptura de código fuente por SE-0508 y el flag de enlazado -ld64), una regla del escaneo de dependencias que puede dar error, un cambio silencioso en ARCHS_STANDARD y dos advertencias; abajo ejecuto en 27A266a todos y cada uno de ellos.246

TL;DR

  • Fechas y builds. El feed de lanzamientos de Apple lista Xcode 27 (27A266a) y los seis sistemas operativos 27.0 el lunes 14 de septiembre; su ítem “iOS 27.0 RC (24A437)” lleva fecha del viernes 11 de septiembre, dos días después de que App Store Connect empezara a recibir subidas con el SDK RC, y la versión GA lleva el mismo número de build.15 Las propias notas de App Store Connect del 14 de septiembre dicen que ya puedes subir apps compiladas con Xcode 27 tanto para la tienda como para TestFlight.5
  • Se movieron los requisitos y los pisos. Xcode 26.6 corría en macOS 26.2 y depuraba dispositivos con iOS 15; Xcode 27 necesita macOS 26.6, corre solo en Apple silicon y depura iOS 17, tvOS 17 y watchOS 10 o posteriores, tanto en el simulador como en hardware. Los deployment targets mínimos suben de macOS 11 a 12, de watchOS 8 a 9 y de DriverKit 20 a 21; iOS, iPadOS y tvOS se quedan en 15, y visionOS en 1.23
  • Tres fallos duros. La macro @State: el propio ejemplo de Apple, un inicializador que asigna una propiedad @State con valor en la declaración antes que las demás propiedades almacenadas, falla con variable 'self.title' used before being initialized; una propiedad computada con un literal de array o diccionario como valor inicial y un accessor init no compila cuando el getter va primero, una ruptura de código fuente que Apple atribuye a SE-0508; y el flag de enlazado -ld64, que Xcode 15 documentó, hace fallar el enlace con ld: library 'd64' not found.2468
  • Cuatro cambios que advierten, pueden dar error o no dicen nada. El enlazador ignora -ld_classic con una advertencia porque ld64 ya no existe; los nombres duplicados de módulos Clang dentro de un mismo escaneo de dependencias “may report an error” (pueden reportar un error); un target solo para macOS fijado en 27.0 compila únicamente arm64 a menos que agregues x86_64 de vuelta, y nada avisa; y PreviewProvider lleva una deprecación en 27.0 con “Use #Preview instead.” mientras cada modificador de vista previa lleva su propio mensaje de reemplazo, y el compilador no muestra ninguno por debajo de un deployment target 27.0.24
  • Apple no ha publicado Xcode 27.1 al 15 de septiembre. Ni el feed de lanzamientos ni el índice de notas de la versión lo listan, y la página para desarrolladores de iPhone Duo de Apple todavía fecha la beta de 27.1 “later this month” (a finales de este mes); la brecha de SDK que describí en mi post sobre Duo para desarrolladores sigue vigente.1 (17 de septiembre: sigue sin haber 27.1, pero la beta de Xcode 27.2 salió el 16 de septiembre y sus notas nombran 27.1 como la versión que trae el SDK del Duo; la actualización de abajo tiene el detalle.9) (19 de septiembre: la beta de Xcode 27.1 (27A9269) salió el 18 de septiembre con un SDK de iOS 27.1; la segunda actualización de abajo tiene sus notas.10) (1 de octubre: sigue habiendo solo esa primera beta de 27.1.11) (11 de octubre: Xcode 27.1 RC (27A9275) salió el 5 de octubre, una RC y no la versión final, y la entrada de App Store Connect de ese día dice “You can now upload apps built with Xcode 27.1 RC using the SDK for iOS 27.1, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0, and watchOS 27.0 for the App Store, and for internal and external testing through TestFlight.” (ya puedes subir apps compiladas con Xcode 27.1 RC con el SDK de iOS 27.1 y los SDK 27.0 de las demás plataformas, para el App Store y para pruebas internas y externas en TestFlight).12) (14 de octubre: salió la beta 3 de Xcode 27.2 (27B5038j); Xcode 27.1 sigue en su RC y Xcode 27 sigue siendo la versión vigente; la cuarta actualización de abajo tiene las notas de la beta 3.13) (15 de octubre: Xcode 27.1 (27A9275) es la versión final, con el número de build de la RC, con fecha a las 13:00 hora del Pacífico en el feed de lanzamientos; la página de notas cambió de título, y la entrada de App Store Connect del día acepta sus builds para la tienda con ese nombre; Xcode 27 ya no es la versión más reciente.14)

Actualización del 17 de septiembre: la beta de 27.2 llegó primero, y 27.1 tiene un encargo

El feed de lanzamientos de Apple fecha una oleada completa de betas 27.2 el miércoles 16 de septiembre: la beta de Xcode 27.2 (27B5019j), la beta de iOS y iPadOS 27.2 (24B5084k), la beta de macOS 27.2 (26B5086k), la beta de tvOS 27.2 (24K5088l), la beta de visionOS 27.2 (24N5088l) y la beta de watchOS 27.2 (24S5086l), más una actualización de TestFlight, y ningún ítem del feed nombra 27.1.9 Las notas de la beta de Xcode 27.2 explican el hueco en una sola frase: “The iOS SDK and simulator support for iPhone Duo will be available later this month in an upcoming release of Xcode 27.1.” (el SDK de iOS y la compatibilidad del simulador con iPhone Duo estarán disponibles a finales de este mes en una próxima versión de Xcode 27.1). Así que 27.1 trae el SDK del Duo, 27.2 es una beta aparte con sus propias funciones nuevas, y la beta conserva el piso de la versión GA: “Xcode 27.2 beta requires a Mac running macOS Tahoe 26.6 or later.” (la beta de Xcode 27.2 requiere una Mac con macOS Tahoe 26.6 o posterior).9

Dos entradas de las notas de esa beta se suman a este post, y el problema conocido sobre los runtimes del simulador que se cita más abajo, 141290052, sigue abierto en 27.2. Bajo Project Format: “Xcode now supports a JSON-based project format (.xcproj) that’s more readable, merge-friendly, and easier for coding agents to edit,” (Xcode ahora admite un formato de proyecto basado en JSON, .xcproj, más legible, más apto para fusiones y más fácil de editar para los agentes de código), que se activa en el inspector de archivos, y “Projects using .xcproj also open in earlier versions of Xcode 27.” (los proyectos que usan .xcproj también se abren en versiones anteriores de Xcode 27). Bajo SDK, un problema conocido: “macOS, watchOS, tvOS, and visionOS SDKs in Xcode 27.2 incorrectly report 27.1 as a valid deployment target,” (los SDK de macOS, watchOS, tvOS y visionOS de Xcode 27.2 reportan incorrectamente 27.1 como deployment target válido), con “unexpected behavior if this deployment target is used,” (comportamiento inesperado si se usa ese deployment target) y “Mac Catalyst builds with a 27.1 or 27.2 deployment target may be unable to use newly introduced API.” (las compilaciones de Mac Catalyst con deployment target 27.1 o 27.2 pueden no poder usar las API recién introducidas).9 Apple también agregó un problema conocido a las propias notas de Xcode 27 entre mis consultas del 16 y del 17 de septiembre, bajo Enhanced Security: “Apps with Hardware-Checked Pointer Arithmetic Slice feature enabled cannot be uploaded to the App Store on macOS Tahoe 26.6 with Xcode automatic signing enabled.” (las apps con la función Hardware-Checked Pointer Arithmetic Slice activada no se pueden subir al App Store desde macOS Tahoe 26.6 con la firma automática de Xcode activada). La solución alternativa es “Distribute with macOS 27 and Xcode 27 or use manual signing.” (distribuye con macOS 27 y Xcode 27, o usa la firma manual). Mi post sobre arm64e.x1 lo recoge.9 Nada en las notas de la beta de 27.2 toca el enlazador, la regla del nombre de módulo, la macro @State ni las deprecaciones de vista previa de abajo; las tres primeras viven en las notas de Xcode 27 y la entrada de @State en las notas de iOS y iPadOS 27, y las entradas de Xcode 27 citadas en este post se leen igual el 17 de septiembre que el 15.69

Actualización del 19 de septiembre: salió la beta de Xcode 27.1, con un SDK de iOS 27.1

El feed de lanzamientos de Apple fecha la beta de Xcode 27.1 (27A9269) el viernes 18 de septiembre, dos días después de la oleada de betas 27.2, y el índice de notas de versión de Xcode ya lista tres entradas 27: Xcode 27, Xcode 27.1 Beta y Xcode 27.2 Beta.10 Las notas de la beta 27.1 son cortas. Su Overview: “Xcode 27.1 beta includes Swift 6.4 and SDKs for iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27,” (la beta de Xcode 27.1 incluye Swift 6.4 y los SDK de iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27 y visionOS 27), con los mismos pisos de depuración en dispositivo que 27.0 y el mismo requisito, “a Mac running macOS Tahoe 26.6 or later.” (una Mac con macOS Tahoe 26.6 o posterior). Lee esa lista de SDK tal como está escrita, con una arruga: el Overview pone a iPadOS en 27 mientras que la línea de App Store Connect de abajo y las páginas de API de Apple dicen iPadOS 27.1 beta, y yo cito ambas en lugar de resolverlo. iOS 27.1 es la versión que, según la nota de prensa de Apple del 16 de septiembre, el iPhone Duo “will run” (ejecutará) cuando salga el 23 de octubre.10 Las notas de versión de App Store Connect traen la línea correspondiente del 18 de septiembre, bajo TestFlight: “You can now submit apps built with Xcode 27.1 beta using the SDK for iOS 27.1 beta or iPadOS 27.1 beta for internal and external testing.” (ya puedes enviar apps compiladas con la beta de Xcode 27.1 usando el SDK de iOS 27.1 beta o iPadOS 27.1 beta para pruebas internas y externas)10 Apple también reescribió el Overview de las notas de la beta 27.2 entre mis descargas del 17 y del 19 de septiembre: la frase citada en la actualización de arriba, “The iOS SDK and simulator support for iPhone Duo will be available later this month in an upcoming release of Xcode 27.1,” desapareció, y en su lugar hay un recuadro que dice “Download Xcode 27.1 beta to get the iOS SDK and simulator support for iPhone Duo,” (descarga la beta de Xcode 27.1 para obtener el SDK de iOS y el soporte de simulador para el iPhone Duo), con un enlace a la página de descargas.10 La documentación de Apple ahora lista cinco de las API del iPhone Duo en iOS 27.1, en beta; los nombres están en mi artículo para desarrolladores del Duo.

Las notas de la beta 27.1 tienen tres secciones, y dos de ellas contienen Known Issues. Bajo Mac Catalyst: “Projects that use APIs specific to iOS 27.1 show compile errors when building for Mac Catalyst (“undeclared identifier”, “not found”, “has no member”, “cannot find”, etc).” (los proyectos que usan API exclusivas de iOS 27.1 muestran errores de compilación al compilar para Mac Catalyst) (185924957), con la solución “Use build-time conditionals like #if !targetEnvironment(macCatalyst) (Swift) or #if !TARGET_OS_MACCATALYST (ObjC) to isolate affected code,” (aislar el código afectado con condicionales de compilación), y “Projects that target iOS 27.1 show no Mac Catalyst run destination available.” (los proyectos que apuntan a iOS 27.1 no muestran ningún destino de ejecución de Mac Catalyst) (187046347), con la solución “Add a Mac Catalyst 27.0 minimum deployment in target settings.” (agregar un despliegue mínimo de Mac Catalyst 27.0 en la configuración del target). Se suman al Known Issue del SDK de la beta 27.2 citado en la actualización del 17 de septiembre, 187160501, que, según mi lectura, es el mismo hueco de 27.1 visto desde el SDK de macOS. Bajo Simulator, tres Known Issues: “Initial Simulator launch can take several minutes.” (el primer arranque del simulador puede tardar varios minutos) (187708500), “StandBy is unavailable in the iPhone Duo Simulator runtime.” (StandBy no está disponible en el runtime del simulador del iPhone Duo) (187708663) y “Running and debugging most app extensions is unavailable in the iPhone Duo Simulator runtime.” (ejecutar y depurar la mayoría de las extensiones de app no está disponible en ese runtime) (187708767). La tercera sección, Previews, trae una New Feature: “The canvas overrides picker now includes a Display group for previewing content on a device’s alternative display.” (el selector de overrides del canvas ahora incluye un grupo Display para previsualizar contenido en la pantalla alternativa de un dispositivo) (182598534).10 Nada en las notas de la beta 27.1 toca el linker, la regla de nombres de módulo, la macro @State ni las deprecaciones de previews de abajo, y las notas de Xcode 27 vueltas a descargar el 19 de septiembre se leen igual que el 17 de septiembre.10

Una fecha más pertenece a este artículo, de la nota de prensa de Apple del 9 de septiembre sobre envíos al App Store: “Starting April 2027, apps and games uploaded to App Store Connect need to meet the following minimum requirements: iOS and iPadOS apps must be built with the iOS 27 & iPadOS 27 SDK or later,” (a partir de abril de 2027, las apps y juegos subidos a App Store Connect deben compilarse con el SDK de iOS 27 e iPadOS 27 o posterior), con las apps de tvOS, visionOS y watchOS sujetas de la misma forma a sus SDK 27. La página Upcoming Requirements de Apple no lo listaba al 19 de septiembre; su entrada más reciente sigue siendo el piso del 28 de abril de 2026, Xcode 26 y los SDK 26. Así que los SDK 27 que describe este artículo se convierten en el piso de subida en abril de 2027.10

Actualización del 1 de octubre: la beta 2 de Xcode 27.2, y ningún Xcode 27.0.1

El feed de lanzamientos de Apple fecha la beta 2 de Xcode 27.2 (27B5028f) el lunes 28 de septiembre, el mismo día que las actualizaciones 27.0.1 de iOS, iPadOS, macOS, visionOS y watchOS. No hay ningún Xcode 27.0.1 en el feed: Xcode 27 (27A266a) seguía siendo la versión vigente, y el texto de su página de notas es idéntico a mi copia del 26 de septiembre.11 Las notas de la beta 2 añaden una herramienta MCP llamada GetCodeCoverage, dan por corregidos los problemas de entrada de Device Hub de la primera beta y siguen enviando el trabajo para el iPhone Duo a la beta de Xcode 27.1, aunque listan dos problemas conocidos propios del iPhone Duo y repiten dos entradas de la beta 27.1 citadas en la actualización del 19 de septiembre, 185924957 y 182598534; el post sobre 27.2 las lee entrada por entrada. El problema de los runtimes del simulador que se cita más abajo, 141290052, figura como corregido en la beta 2 de 27.2; Xcode 27 todavía lo lista como Known Issue.11

Actualización del 14 de octubre: la beta 3 de Xcode 27.2, y el recuadro del Duo ya no está

El feed de lanzamientos de Apple fecha la beta 3 de Xcode 27.2 (27B5038j) el miércoles 14 de octubre, un día después de las cuartas betas 27.2 de iOS, iPadOS, macOS, visionOS y watchOS (tvOS no tuvo ninguna). Xcode 27 (27A266a) seguía siendo la versión vigente y Xcode 27.1 seguía en su RC del 5 de octubre (15 de octubre: Xcode 27.1 salió como versión final esa tarde, build 27A9275, la build de la RC; la quinta actualización de abajo lo trata), y el texto de la página de notas de Xcode 27 no ha cambiado respecto a una copia que guardé el 11 de octubre.13 Las notas de la beta 3 quitan el recuadro que enviaba el trabajo para el iPhone Duo a la beta de Xcode 27.1 y no ponen nada en su lugar, así que nada dice que el SDK del Duo haya pasado a 27.2, y según mi lectura la RC de 27.1 sigue siendo la build del Duo; añaden dos correcciones de Interface Builder para el modo de compilación toolchain; trasladan el problema de la clonación de simuladores a un encabezado Simulator Runtimes, con un comando find como solución alternativa; y vuelven a archivar el problema de la reinstalación del runtime, 187950199, como resuelto en la beta 2; el post sobre 27.2 las lee entrada por entrada. El problema de los runtimes del simulador que se cita más abajo, 141290052, que es otra entrada, sigue figurando como corregido en la beta 2 de 27.2 y sigue siendo un Known Issue en la página de Xcode 27. La entrada de TestFlight de App Store Connect del mismo día acepta builds de la beta 3 de 27.2 para pruebas, no para la tienda.13

Actualización del 15 de octubre: Xcode 27.1 es la versión final, con la build de la RC

El feed de lanzamientos de Apple fecha Xcode 27.1 (27A9275) el jueves 15 de octubre a las 13:00 hora del Pacífico, ocho días antes de que el iPhone Duo salga a la venta el 23 de octubre; el número de build es el de la RC del 5 de octubre.101214 La página de notas cambió de título a “Xcode 27.1 Release Notes” y su Overview dice “Xcode 27.1 includes Swift 6.4 and SDKs for iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27.” (Xcode 27.1 incluye Swift 6.4 y los SDK de iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27 y visionOS 27), el texto de la RC sin “RC”, y los dos problemas conocidos del simulador del iPhone Duo se mantienen. La entrada de App Store Connect del mismo día dice “You can now upload apps built with Xcode 27.1 using the SDK for iOS 27.1, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0, and watchOS 27.0 for the App Store, and for internal and external testing through TestFlight.” (ya puedes subir apps compiladas con Xcode 27.1 con el SDK de iOS 27.1 y los SDK 27.0 de las demás plataformas, para la App Store y para pruebas internas y externas en TestFlight) y agrega “Submit your iPhone Duo optimized apps and games in App Store Connect today. Starting April 2027, any apps or games submitted will need to include screenshots for iPhone Duo.” (envía hoy en App Store Connect tus apps y juegos optimizados para el iPhone Duo; a partir de abril de 2027, todas las apps y juegos que se envíen deberán incluir capturas para el iPhone Duo). Xcode 27 (27A266a) sigue en el feed como la versión del 14 de septiembre, y la página de notas de Xcode 27 no ha cambiado respecto a la copia del 11 de octubre. El post sobre 27.2 y el post sobre cómo preparar tu app para el iPhone Duo llevan la misma nota.14

Actualización del 26 de octubre: salieron los sistemas 27.2, y Xcode 27.2 sigue siendo la RC

El feed de lanzamientos de Apple fecha iOS 27.2 (24B119, con una segunda build de iOS 27.2, 24B91020, en el mismo minuto), iPadOS 27.2 (24B119), macOS 27.2 (26B123), tvOS 27.2 (24K122), visionOS 27.2 (24N120) y watchOS 27.2 (24S118) el lunes 26 de octubre a las 10:00 hora del Pacífico. El ítem de Xcode más reciente del feed sigue siendo la release candidate, Xcode 27.2 RC (27B48), con fecha del 19 de octubre a las 10:00 hora del Pacífico, y su página de notas sigue titulándose “Xcode 27.2 RC Release Notes”, con este Overview: “Xcode 27.2 RC includes Swift 6.4 and SDKs for iOS 27.2, iPadOS 27.2, tvOS 27.2, watchOS 27.2, macOS 27.2, and visionOS 27.2. Xcode 27.2 RC supports on-device debugging in iOS 17 and later, tvOS 17 and later, watchOS 10 and later, and visionOS. Xcode 27.2 RC requires a Mac running macOS Tahoe 26.6 or later.” (Xcode 27.2 RC incluye Swift 6.4 y los SDK de las versiones 27.2 de cada sistema, admite la depuración en dispositivos con iOS 17 y posteriores, tvOS 17 y posteriores, watchOS 10 y posteriores y visionOS, y requiere una Mac con macOS Tahoe 26.6 o posterior). La entrada del 20 de octubre de App Store Connect acepta sus builds: “You can now upload apps built with Xcode 27.2 RC using the SDK for iOS 27.2 RC, iPadOS 27.2 RC, macOS 27.2 RC, tvOS 27.2 RC, visionOS 27.2 RC, and watchOS 27.2 RC for the App Store, and for internal and external testing through TestFlight.” (ya puedes subir apps compiladas con Xcode 27.2 RC y los SDK RC de 27.2 para la App Store y para pruebas internas y externas en TestFlight). En septiembre, Xcode 27 salió el mismo día que los sistemas 27.0; esta vez los sistemas salieron sin él. La página de la RC añade a la de la beta 3 una lista de funciones de Device Hub (animación en cámara lenta; sacudida, caída y presión de memoria simuladas para los simuladores; un menú contextual para las capturas de pantalla; un arrastrar y soltar mejorado para el icono de captura; marcos ocultos; y un grupo App Settings, 189236369), correcciones para el cierre inesperado del Vision Pro sin un runtime de visionOS, para el ítem de menú de aviso de memoria y para el cierre de Device Hub en betas anteriores de macOS 27.2 (190126101), un Known Issue de Device Hub según el cual “is unable to customize the text size for a device running iOS 18 or earlier” (no puede personalizar el tamaño del texto de un dispositivo con iOS 18 o anterior) (189261485), una corrección del simulador del iPhone Duo para CameraCaptureAccessory usando ambas pantallas (190155353), un nuevo Known Issue del simulador del iPhone Duo, “When switching between the inner and outer display of the iPhone Duo simulator, modifier keys such as Shift and Command might stop working.” (al cambiar entre la pantalla interior y la exterior del simulador del iPhone Duo, las teclas modificadoras como Shift y Command podrían dejar de funcionar) (189465196), y una corrección para Instruments, otra para Memory Gauge y otra para XCTest UI Automation. El Known Issue del SDK según el cual los SDK de macOS, watchOS, tvOS y visionOS “incorrectly report 27.1 as a valid deployment target” (dan por válido, por error, un deployment target de 27.1) no cambia, y tampoco la entrada de Mac Catalyst sobre las “APIs specific to iOS 27.1” (API específicas de iOS 27.1). Entre los dos ítems de Xcode salió el iPhone Duo: la sala de prensa de Apple fecha su llegada a las tiendas el viernes 23 de octubre, y la página de versiones de seguridad de Apple lista iOS 27.1 solo para “iPhone Duo”, con fecha del 23 de octubre y sin entradas CVE publicadas; ningún ítem de iOS 27.1 llegó nunca al feed, y el índice de notas de versión lista solo 27 y 27.2, así que el SDK de 27.1 que trae Xcode 27.1, build 24A94232 en esta Mac, es el SDK de una versión de iOS que salió en un solo teléfono. TestFlight 4.4.1, con fecha del 22 de octubre, añade “Support for iPhone Duo” (compatibilidad con el iPhone Duo). La publicación sobre las notas de versión de iOS 27.2 lee las notas de 27.2 y la publicación sobre la beta de 27.2 conserva el registro de las betas.15

¿Qué se lanzó el 14 de septiembre?

Elemento Build Fecha en el feed
Xcode 27 27A266a Lun 14 sep 2026
iOS 27.0 / iPadOS 27.0 24A437 Lun 14 sep; el ítem “iOS 27.0 RC (24A437)” del feed lleva fecha del vie 11 sep, y App Store Connect recibió subidas con el SDK RC desde el mié 9 sep
macOS 27.0 26A428 Lun 14 sep
tvOS 27.0 24J361 Lun 14 sep
visionOS 27.0 24M362 Lun 14 sep
watchOS 27.0 24R364 Lun 14 sep
App Store Connect “You can now upload apps built with Xcode 27 using the SDK for iOS 27.0, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0, and watchOS 27.0 for the App Store, and for internal and external testing through TestFlight.” (Ya puedes subir apps compiladas con Xcode 27 y los SDK 27.0 para el App Store y para pruebas internas y externas con TestFlight.) 14 sep

La sección Overview de las notas de la versión dice: “Xcode 27 includes Swift 6.4 and SDKs for iOS 27, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27. Xcode 27 supports on-device debugging in iOS 17 and later, tvOS 17 and later, watchOS 10 and later, and visionOS. Xcode 27 requires a Mac running macOS Tahoe 26.6 or later.” (Xcode 27 incluye Swift 6.4 y los SDK 27, depura en dispositivo desde iOS 17, tvOS 17 y watchOS 10, y requiere una Mac con macOS Tahoe 26.6 o posterior.)2 En esta Mac, xcodebuild -version imprime Xcode 27.0 Build version 27A266a y swift --version imprime Apple Swift version 6.4 (swiftlang-6.4.0.34.1 clang-2100.3.34.1).4

Cronología del ciclo 27: iPhone Duo anunciado el 9 de septiembre, iOS 27.0 RC el 11 de septiembre, GA el 14 de septiembre, las betas 27.2 el 16 de septiembre, la beta de Xcode 27.1 con el SDK de iPhone Duo el 18 de septiembre, la versión final de Xcode 27.1 el 15 de octubre (27A9275) y el iPhone Duo a la venta el 23 de octubre con iOS 27.1.

¿Qué contienen las notas de la versión de Xcode 27?

Las notas son una sola página bajo Xcode Release Notes en el sitio de documentación para desarrolladores de Apple, y son largas: 41 áreas con encabezado y 296 entradas de lista, que al contarlas dan 134 funciones nuevas, 134 problemas resueltos, 19 problemas conocidos y 9 deprecaciones. Instruments concentra la mayor cantidad de entradas, con 60, seguido de Device Hub con 36, Coding Intelligence con 29, Previews con 27, Previews & Playgrounds con 18, Testing con 16 y Localization con 15. Las nueve deprecaciones están bajo C++ Standard Library, Device Hub, devicectl, Instruments, Intel Deprecation, Linking, On Demand Resources, Previews y USDKit; las entradas de Linking e Intel son las que cambian los builds, y las secciones de abajo las citan. Las cifras son mi propio conteo de los elementos de lista bajo cada encabezado, hecho el 26 de septiembre.2

¿Qué requiere Xcode 27 en comparación con 26.6?

La tabla de compatibilidad de Apple es el documento que conviene revisar antes de actualizar una máquina de compilación. Las dos filas, lado a lado:3

Xcode 26.6 Xcode 27
macOS para ejecutarlo Tahoe 26.2 a 26.x Tahoe 26.6 o posterior, solo Apple silicon2
SDK iOS, tvOS, watchOS, visionOS, macOS 26.5; DriverKit 25.5 iOS, tvOS, watchOS, visionOS, macOS 27; DriverKit 27
Deployment targets iOS 15, tvOS 15, watchOS 8, visionOS 1, macOS 11, DriverKit 20 iOS 15, tvOS 15, watchOS 9, visionOS 1, macOS 12, DriverKit 21
Dispositivos que puedes depurar iOS 15, tvOS 15, watchOS 8, visionOS 1 o posterior iOS 17, tvOS 17, watchOS 10, visionOS 1 o posterior
Simuladores iOS 15, tvOS 15, watchOS 8, visionOS 1 o posterior iOS 17, tvOS 17, watchOS 10, visionOS 1 o posterior
Compilador Swift 6.3 6.4 (modos de lenguaje 6, 5, 4.2 y 4)

Detrás de esas filas se esconden dos consecuencias. Instruments ahora rechaza dispositivos anteriores a iOS 17, watchOS 10 o tvOS 17, así que un equipo de perfilado montado sobre un iPhone viejo deja de funcionar antes que cualquier línea de la app.2 Y Apple acota las interacciones de teclado y puntero del Device Hub con una sola frase: “only supported on the following OS versions and newer: macOS 15.0, iOS 18.0, tvOS 18.0, watchOS 11.0, visionOS 2.0.” (solo se admiten en esas versiones o posteriores).2

El requisito de Apple silicon no tiene rodeo para la Mac en la que ejecutas Xcode, y no es novedad para quien leyó el post sobre Intel en julio; las notas GA conservan íntegra la redacción de julio: “Xcode 27 will only install and run on Apple silicon Macs. The macOS 27 SDK supports back deploying Universal (Intel and Apple Silicon) apps to macOS 12 and later. Intel development is still possible with macOS versions that support Rosetta like macOS 27.” (Xcode 27 solo se instala y ejecuta en Macs con Apple silicon; el SDK de macOS 27 permite desplegar apps Universal hasta macOS 12; desarrollar para Intel sigue siendo posible con versiones de macOS que admiten Rosetta, como macOS 27.)2 La tercera frase es el rodeo para las Macs a las que distribuyes, no para la que usas para compilar.

Los cambios de Xcode 27 ordenados según detengan o no la compilación: el orden del inicializador de @State, el orden de los accesores de SE-0508 y la bandera -ld64 la detienen; -ld_classic, la regla de escaneo del nombre de módulo, ARCHS_STANDARD con un destino 27.0 y los modificadores de PreviewProvider no la detienen.

¿Qué cambió en la cadena de herramientas?

El enlazador. Las notas GA lo dicen en una frase: “The ld64 linker has been removed and the -ld_classic option is no longer supported.” (se eliminó el enlazador ld64 y la opción -ld_classic ya no se admite).2 Así se ve en 27A266a: el usr/bin de la cadena de herramientas contiene un solo binario de enlazador, ld, que se identifica como ld-27037.1, compilado el 25 de agosto de 2026. Pasar el flag viejo no hace fallar el enlace. Con un hello.c que contiene la única línea int main(void){return 0;}, clang hello.o -o hello_classic -Xlinker -ld_classic imprime ld: warning: -ld_classic is no longer supported and will be ignored, sale con 0 y escribe el ejecutable. A la otra forma que Apple documentó en Xcode 15, -ld64, le va peor:8 clang hello.c -o hello_ld64 -Wl,-ld64 falla con ld: library 'd64' not found y sale con 1, porque el nuevo enlazador lee -ld64 como -l d64, una petición de una biblioteca llamada d64.4 Así que un proyecto que lleva -ld_classic en OTHER_LDFLAGS sigue compilando, con una advertencia nueva en cada enlace, y cualquier comportamiento que obtenía del enlazador viejo desapareció; un proyecto que lleva -ld64 deja de enlazar, con un error que nunca menciona al enlazador. Mi post sobre ld64 audita de dónde salieron esos flags y registra ambas ejecuciones.

Las arquitecturas por defecto. La sección Intel Deprecation enuncia la regla: “Build targets with a min deployment target set to macOS 27.0 or DriverKit 27.0 will not build Universal by default. The ARCHS_STANDARD build setting will no longer include x86_64 when MACOSX_DEPLOYMENT_TARGET or DRIVERKIT_DEPLOYMENT_TARGET >= 27.0.” (los targets con deployment target mínimo 27.0 en macOS o DriverKit ya no compilan en Universal por defecto, porque ARCHS_STANDARD deja de incluir x86_64).2 Lo reproduje en un proyecto multiplataforma (Yawara, con SUPPORTED_PLATFORMS = iphoneos iphonesimulator macosx xros xrsimulator) con xcodebuild -showBuildSettings -sdk macosx; sin el argumento -sdk el proyecto no resuelve ningún ARCHS_STANDARD, un detalle que cubre el post sobre Intel. Con MACOSX_DEPLOYMENT_TARGET = 26.0 el ajuste se resuelve como ARCHS_STANDARD = arm64 x86_64; con 27.0 se resuelve como ARCHS_STANDARD = arm64, mientras ARCHS_STANDARD_64_BIT se mantiene en arm64 x86_64 en ambos casos.4 Nada avisa. Si distribuyes en Universal y subes el target, agrega x86_64 a ARCHS tú mismo.

La biblioteca estándar de C++. “The minimum supported deployment target on macOS for the C++ standard library has been increased to 11.0,” (el deployment target mínimo de la biblioteca estándar de C++ en macOS sube a 11.0) y las notas listan cambios de comportamiento bajo “Potentially breaking changes,” empezando por multi{map,set}::find, que ya no devuelve necesariamente el primer elemento coincidente.2 La lista de novedades es larga: hashing para valores de std::chrono, zip, std::optional<T&>, std::views::indices(n) y más.2

El escaneo de dependencias, y la regla que puede hacerlo fallar. Apple dice que optimizó el escáner de dependencias de Swift “to avoid redundant setup work and header searches when looking up Clang modules during a single dependency-scan action,” (para evitar trabajo de preparación y búsquedas de cabeceras redundantes al resolver módulos Clang dentro de una misma acción de escaneo) y la mejora de velocidad trae un requisito: “every Clang module reachable from a single Swift dependency-scan action must have a unique module name. If two module maps visible to the same scan declare a Clang module with the same name, the scan may report an error. Previously, the scanner may have tolerated duplicating names.” (todo módulo Clang alcanzable desde un mismo escaneo debe tener un nombre único; si dos module maps visibles en el mismo escaneo declaran un módulo con el mismo nombre, el escaneo puede reportar un error, algo que antes quizá se toleraba).2 Apple nombra las dos formas que lo disparan: “projects or SDKs that vend the same Clang module name from more than one location on the header search path, and vendored third-party sources that ship a module.modulemap redeclaring an SDK module.” (proyectos o SDK que exponen el mismo nombre de módulo Clang desde más de una ubicación de la ruta de búsqueda de cabeceras, y fuentes de terceros incorporadas al proyecto que traen un module.modulemap que redeclara un módulo del SDK).2 Igual que la eliminación del enlazador, la regla se dispara al actualizar la cadena de herramientas y no según el deployment target; mi post sobre ld64 pasa dos module maps en colisión por el escáner, compila un shim de SQLite3 incorporado que oculta el módulo del SDK y audita siete proyectos en busca de ambas formas. En 27A266a la primera forma reporta exactamente el error que anticipa el “puede” de Apple: dos module maps que declaran module Widget en una misma ruta de búsqueda hacen que swiftc -scan-dependencies imprima error: redefinition of module 'Widget' en 20 de 20 ejecuciones mientras sale con 0 en 20 de 20 y resuelve el módulo al primer directorio -I; Xcode 26.6 se cayó o abortó en 14 de 20 ejecuciones de la misma entrada en julio. La compilación se detiene igual, porque -typecheck falla en 20 de 20 con el mismo error. La segunda forma, un module map incorporado que redeclara el SQLite3 del SDK, escanea limpio, sin nada en stderr, y oculta el módulo del SDK en silencio.4 El post sobre ld64 registra ambas ejecuciones, en 26.6 y en la versión GA.

¿Qué deja de compilar?

La macro @State. El cambio vive en las notas de la versión de iOS 27, no en las de Xcode, y depende del compilador con el que compilas, no del target al que despliegas: “Xcode 27 introduces a new @State implementation that avoids this repeated evaluation. This new behavior back-deploys to iOS 17 aligned OSes. The new @State is implemented with a Swift macro. It is largely source compatible with the property wrapper version, with a few exceptions.” (Xcode 27 introduce una nueva implementación de @State como macro de Swift, que se despliega hacia atrás hasta los sistemas alineados con iOS 17 y es en gran medida compatible a nivel de código fuente con la versión de property wrapper, con algunas excepciones.)6 Apple nombra cuatro excepciones y da listados de código para dos de ellas; las otras dos reciben una o dos frases cada una: “In rare situations, the automatic inference of generic arguments of @State is less flexible with the macro implementation. Write the type with more specificity.” (en casos raros la inferencia automática de argumentos genéricos de @State es menos flexible con la macro; escribe el tipo con más precisión) y “Composing @State with other property wrappers or macros is not supported.” (no se admite combinar @State con otros property wrappers o macros).6 Las dos con listados son las que atrapan al código existente. Un inicializador que asigna una propiedad @State que ya tiene valor en la declaración: SwiftUI siempre descartó esa asignación, y ahora “some such cases no longer compile.” (algunos de esos casos ya no compilan).6 Y el inicializador memberwise privado que el compilador sintetiza cuando todos los miembros almacenados son privados: “The state macro disables this synthesized initializer. So the code above no longer compiles.” (la macro desactiva ese inicializador sintetizado, así que el código de arriba ya no compila).6 En 27A266a el primer ejemplo falla tal cual está escrito, con error: variable 'self.title' used before being initialized en la línea que asigna page, porque el setter de la macro corre contra self antes de que exista title; mueve self.title = title por encima y el mismo archivo compila, con la asignación a @State descartada como antes.46 El segundo ejemplo, una extensión que llama a self.init(page: page, title: title) sobre un struct cuyo @State no tiene valor en la declaración, compiló sin cambios en mi ejecución, y la expansión de la macro muestra la forma que lo permite: la macro emite private var _page: SwiftUICore.State<StickerPage> detrás de un accessor init con @storageRestrictions(initializes: _page), la construcción que deja que un inicializador memberwise reciba page:.4 Lee la nota como una descripción de formas que conviene revisar, y luego confirma cada una en tu propio código. El post sobre la macro @State cuenta ambos patrones en cuatro apps publicadas; lo escribí a partir de las notas de la beta en julio, antes de esta prueba GA, y su pregunta abierta también se cierra aquí: asignar el almacenamiento de respaldo directamente, _page = State(initialValue:) dentro de un inicializador, compila en 27A266a tanto con valor en la declaración como sin él.4

La ruptura por SE-0508. Bajo Swift Compiler, Known Issues: “A computed property with both an init accessor and an array/dictionary literal initial value will no longer compile if the getter is declared before the init accessor.” (una propiedad computada con un accessor init y un literal de array o diccionario como valor inicial ya no compila si el getter se declara antes del accessor init). Sigue un listado de código y luego la atribución: “This is a known source break from SE-0508.” La solución, completa: “Swap the init accessor and the getter such that the init accessor is declared first.” (intercambia el accessor init y el getter para que el init quede primero).2 SE-0508 es “Array expression trailing closures”, implementada en Swift 6.4, y la propuesta predice exactamente este caso: “If the getter is declared before the init accessor, we will now attempt to parse as a trailing closure,” (si el getter va antes del accessor init, ahora se intentará interpretar como trailing closure) y agrega que “init accessors are however considered for disambiguation, so swapping the accessors is sufficient to make this valid regardless of initial value used,” (los accessors init sí cuentan para la desambiguación, así que intercambiarlos basta para que sea válido sin importar el valor inicial) y que el caso “does not appear in the source compatibility suite, or for internal Swift projects at Apple.” (no aparece en la suite de compatibilidad de código fuente ni en los proyectos internos de Swift en Apple).7 Se reproduce con un struct de nueve líneas. Con el getter primero, swiftc falla en la línea del accessor con error: initializers may only be declared within a type; mueve el accessor init con @storageRestrictions(initializes:) por encima de get y el mismo archivo compila.4

struct Container {
    private var storage: [Int] = []
    var items: [Int] = [] {
        @storageRestrictions(initializes: storage)
        init(initialValue) { storage = initialValue }   // debe ir antes de get
        get { storage }
        set { storage = newValue }
    }
}

PreviewProvider. La sección Previews lista una deprecación: “PreviewProvider and its family of preview modifiers.” (PreviewProvider y su familia de modificadores de vista previa).2 El SDK la lleva, con un mensaje para el protocolo y otro distinto para cada modificador. En la interfaz de SwiftUI del SDK de iOS 27, public protocol PreviewProvider está bajo @available(anyAppleOS, deprecated: 27.0, message: "Use #Preview instead."); previewLayout dice “Use #Preview(traits: .sizeThatFitsLayout) or .fixedLayout(width:height:) instead.”; previewDisplayName dice “Use #Preview(“name”) instead.”; previewInterfaceOrientation dice “Use #Preview(traits: .landscapeLeft) or other orientation traits instead.”; previewDevice dice “Use the device picker in Xcode’s canvas.” (usa el selector de dispositivo del canvas de Xcode); y previewContext, junto con los protocolos PreviewContext y PreviewContextKey, dice “Use #Preview with a Widget timeline provider or entries instead.” (usa #Preview con un timeline provider o entradas de Widget).4 Dos hechos deciden si alguna vez ves esos mensajes. El compilador compara la versión de la deprecación con el deployment target, así que los modificadores solo advierten en un target cuyo mínimo sea 27.0: un archivo que usa previewLayout, previewDisplayName y previewDevice produjo tres advertencias con -target arm64-apple-ios27.0-simulator y ninguna con 17.0 ni 26.0. Y PreviewProvider en sí nunca advierte, por una razón distinta. El SDK lo declara con @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *) justo encima de la deprecación anyAppleOS, y en mi prueba un protocolo con ese par no produjo advertencia alguna, ni por conformar a él ni por usarlo como tipo de parámetro, con target 27.0, mientras que el mismo protocolo deprecado solo con @available(iOS, deprecated: 27.0), o solo con la forma anyAppleOS, advirtió en ambos casos; los modificadores llevan únicamente la deprecación anyAppleOS en sus propias declaraciones (la extension SwiftUICore.View que los contiene lleva el atributo de introducción, y esa forma heredada no suprime la advertencia), y por eso ellos advierten y el protocolo no.4 Con cualquier deployment target que realmente distribuyas, el log de compilación queda en silencio en ambos casos, así que busca PreviewProvider y los modificadores y pásate a #Preview, que el canvas ahora renderiza en cuadrículas por argumento gracias a la nueva sintaxis #Preview(arguments:).24

El nuevo stat() de System. La biblioteca System ahora ofrece API de Swift para stat, lstat, fstat y fstatat, con un tipo Stat y métodos de instancia FilePath.stat().2 Las notas listan como resuelto un conflicto en el que una extensión que llamaba a un stat() sin calificar chocaba con los métodos nuevos; si agregaste la calificación Darwin. mientras ese conflicto estaba vivo, puede quedarse.2

Address Sanitizer, en la dirección contraria. “Address Sanitizer might fail to launch on iOS 27.0, tvOS 27.0, watchOS 27.0, and visionOS 27.0 when building with Xcode 26.4 or older.” (Address Sanitizer puede no arrancar en los sistemas 27.0 cuando se compila con Xcode 26.4 o anterior). La solución es Xcode 26.5 o posterior, lo cual importa para los equipos que mantienen un Xcode más viejo en la máquina de CI mientras los dispositivos se actualizan a 27.0.2

¿Qué cambió en el IDE y en las herramientas?

  • Interface Builder compila sin simulador. Un nuevo modo de compilación, toolchain, “for UIKit (Cocoa Touch) based documents. Enabled by default, toolchain allows compiling IB documents without the need to download a simulator, which is especially useful for build servers.” (para documentos basados en UIKit; activado por defecto, permite compilar documentos de IB sin descargar un simulador, algo especialmente útil en servidores de compilación).2
  • Los simuladores arrancan más rápido, y se reinician. “The simulator runtimes now contain a pre-built dyld cache. This will make first launch of a simulator much faster,” (los runtimes del simulador ahora traen una caché de dyld preconstruida, así que el primer arranque es mucho más rápido) y simctl gana un comando reboot.2 Un problema conocido sobrevive, en palabras de Apple: “Some simulator runtimes are not completely deleted when removed, re-appearing after a reboot.” (algunos runtimes del simulador no se borran del todo al eliminarlos y reaparecen tras un reinicio).2
  • El JSON de devicectl va por la versión 5. xcrun devicectl --version reporta 642.16 y list devices --json-output escribe "jsonVersion": 5; Apple marca como obsoletos los campos hardwareProperties, deviceProperties y connectionProperties en favor de un diccionario properties, y cualquier resultado que todavía los contenga lleva un _deprecationNotice.24
  • Pruebas de StoreKit. La interfaz de configuración de StoreKit puede definir códigos de oferta, puedes configurar paquetes de suscripciones para pruebas locales, y el Transaction Manager puede ejercitar compras con códigos de oferta sin dispositivo.2
  • Organizer. Un Insights Overview “summarizes high-impact performance regressions,” (resume las regresiones de rendimiento de alto impacto) y una métrica Hitches reemplaza a la métrica Scrolling.2
  • Asistente de código. Google Gemini se suma a la lista de modelos, y “Planning with agents is now first class in Xcode,” (planificar con agentes ya es una función de primera clase en Xcode) con planes como artefactos Markdown editables que apruebas antes de que el agente continúe; mi post sobre agentes de código cubre el flujo desde la beta, y las notas GA listan un editor de Markdown justo para esos artefactos.2
  • Localización. Los agentes pueden traducir entradas de String Catalog, y exportar localizaciones ahora extrae NSLocalizedString y macros similares desde archivos de cabecera.2
  • Icon Composer. Las notas lo llaman Icon Composer 2.0, “a new sharper rendering mode for upcoming 2027 operating systems” (un nuevo modo de renderizado más nítido para los sistemas operativos de 2027); el bundle dentro de 27A266a reporta la versión 27.0.24
  • Pruebas. Un test plan puede definir cómo trata Xcode un crash de la app objetivo durante las pruebas de UI, desde desactivado hasta fallo fatal, y swift test gana --maximum-repetitions con --repeat-until [pass|fail] más un resumen de fallos al final.2
  • Depuración. Con bridging headers, LLDB “can now directly import explicitly built Swift modules and PCH from DerivedData,” (ahora puede importar directamente desde DerivedData los módulos Swift construidos explícitamente y los PCH) y un comando language swift task tree lista las tareas de concurrencia de Swift.2

Qué haría yo esta semana

  1. Lee las filas de compatibilidad antes de tocar CI: macOS 26.6 en las Macs de compilación, solo Apple silicon, iOS 17 como dispositivo de prueba más viejo, y el piso de macOS 12, watchOS 9 o DriverKit 21 que le toque a tu producto.23
  2. Haz grep de -ld_classic y -ld64 y elimina ambos; el enlazador ignora el primero con una advertencia en cada enlace y falla de plano con el segundo. Ya que estás en los ajustes de compilación, busca archivos module.modulemap escritos a mano que redeclaren un módulo del SDK, la forma que Apple nombra para la regla del nombre de módulo único.24
  3. Si fijas cualquier target de macOS o DriverKit en 27.0 y distribuyes para Intel, define ARCHS explícitamente; ARCHS_STANDARD por sí solo te da arm64, algo que reproduje para macOS y que Apple afirma para ambos.24
  4. Busca PreviewProvider, previewLayout, previewDisplayName y previewDevice, y sigue el mensaje propio de cada anotación: el protocolo a #Preview, previewLayout a #Preview(traits: .sizeThatFitsLayout) o .fixedLayout(width:height:), previewDisplayName a #Preview("name") y previewDevice al selector de dispositivo del canvas. Los modificadores solo advierten con un deployment target 27.0 y la conformancia a PreviewProvider nunca advierte con ningún target, así que el log de compilación de un target real se queda en silencio.4
  5. Compila una vez con Xcode 27 y lee dos diagnósticos: variable 'self.title' used before being initialized en un inicializador que asigna una propiedad @State que ya trae valor en la declaración antes que las demás propiedades almacenadas, que el post sobre la macro @State recorre paso a paso, y initializers may only be declared within a type en propiedades con un literal de array o diccionario como valor inicial y un accessor init, donde mueves el accessor por encima del getter.246
  6. Sube un build a TestFlight con los SDK 27 ahora que App Store Connect los acepta, y ten presentes la regla de la launch screen y el mandato de escenas de UIKit, porque ambos obligan a la app desde el momento en que enlaza contra 27.56

Preguntas frecuentes

¿Cuándo salió Xcode 27?

El lunes 14 de septiembre de 2026, como build 27A266a, el mismo día que iOS 27.0, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0 y watchOS 27.0; el feed fecha su ítem iOS 27.0 RC (24A437) el 11 de septiembre, dos días después de que App Store Connect empezara a recibir builds con el SDK RC.15

¿Qué macOS requiere Xcode 27?

macOS Tahoe 26.6 o posterior en una Mac con Apple silicon. No se instala ni se ejecuta en Macs con Intel. Corre en macOS 27.0, que salió el mismo día.23

¿Cuáles son los deployment targets mínimos en Xcode 27?

iOS 15, iPadOS 15, tvOS 15, watchOS 9, visionOS 1, macOS 12 y DriverKit 21. En comparación con Xcode 26.6, watchOS subió desde 8, macOS desde 11 y DriverKit desde 20.3

¿Xcode 27 sigue compilando apps Universal para Mac?

Sí, hasta macOS 12, pero no por defecto una vez que el MACOSX_DEPLOYMENT_TARGET de un target es 27.0: ARCHS_STANDARD entonces se resuelve solo como arm64, y tú mismo agregas x86_64 a ARCHS.24

¿Ya salió Xcode 27.1?

No al 15 de septiembre de 2026. El feed de lanzamientos de Apple y el índice de notas de la versión de Xcode listan solo Xcode 27, y la página para desarrolladores de iPhone Duo de Apple sigue listando la beta de Xcode 27.1 como “Coming later this month” (disponible a finales de este mes); el SDK de iPhone Duo no forma parte de esta versión.1 (17 de septiembre: sigue sin haber 27.1. La beta de Xcode 27.2 (27B5019j) salió el 16 de septiembre, y sus notas de la versión dicen que el SDK de iOS y la compatibilidad del simulador con iPhone Duo “will be available later this month in an upcoming release of Xcode 27.1.” (estarán disponibles a finales de este mes en una próxima versión de Xcode 27.1).9) (19 de septiembre: como beta, sí. La beta de Xcode 27.1 (27A9269) salió el 18 de septiembre con un SDK de iOS 27.1 y, en palabras de las notas de la beta 27.2, “simulator support for iPhone Duo,” (soporte de simulador para el iPhone Duo), y App Store Connect acepta sus builds para TestFlight; todavía no hay versión final 27.1, y la nota de prensa de Apple del 16 de septiembre dice que el iPhone Duo “will run iOS 27.1” (ejecutará iOS 27.1) cuando salga el 23 de octubre.10) (1 de octubre: sigue habiendo solo la primera beta de 27.1, 27A9269.11) (11 de octubre: como RC, sí. Xcode 27.1 RC (27A9275) salió el 5 de octubre con Swift 6.4 y el SDK de iOS 27.1, y App Store Connect acepta sus builds para el App Store; el feed de lanzamientos todavía no lista ninguna versión final de Xcode 27.1.12) (14 de octubre: sigue en RC; ese día salió la beta 3 de Xcode 27.2 sin ninguna versión final de Xcode 27.1 a su lado.13) (15 de octubre: sí, como versión final. Xcode 27.1 (27A9275), la build de la RC, tiene fecha a las 13:00 hora del Pacífico en el feed de lanzamientos de Apple; la página de notas cambió de título a “Xcode 27.1 Release Notes”, y la entrada de App Store Connect del día dice “You can now upload apps built with Xcode 27.1 using the SDK for iOS 27.1, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0, and watchOS 27.0 for the App Store, and for internal and external testing through TestFlight.” (ya puedes subir apps compiladas con Xcode 27.1 con el SDK de iOS 27.1 y los SDK 27.0 de las demás plataformas, para la App Store y para pruebas internas y externas en TestFlight).14)

¿Dónde están las notas de la versión de Xcode 27?

En el sitio de documentación para desarrolladores de Apple, bajo Xcode Release Notes, una página para la versión; las secciones citadas aquí son Overview, Linking, Intel Deprecation, Previews, Swift Compiler, Address Sanitizer, Instruments, Device Hub, devicectl, Simulator, Interface Builder, C++ Standard Library, Organizer, Coding Intelligence, Source Editor, Icon Composer, StoreKit Testing in Xcode, Localization, Testing, Swift Package Manager, Debugging, System y, desde la actualización del 17 de septiembre, Enhanced Security.29 El cambio de la macro @State está, en cambio, en las notas de la versión de iOS y iPadOS 27, bajo SwiftUI.6

Fuentes


  1. Apple, Releases, feed RSS consultado el 15 de septiembre de 2026: “Xcode 27 (27A266a)”, “iOS 27.0 (24A437)”, “iPadOS 27.0 (24A437)”, “macOS 27.0 (26A428)”, “tvOS 27.0 (24J361)”, “visionOS 27.0 (24M362)”, “watchOS 27.0 (24R364)” y “App Store Connect Update”, todos con fecha del lunes 14 de septiembre de 2026; “iOS 27.0 RC (24A437)” con fecha del viernes 11 de septiembre de 2026. El índice de Xcode Release Notes lista una sola entrada 27, “Xcode 27 Release Notes”; no aparece ningún ítem 27.1 en ninguno de los dos lugares. Apple Developer, Get Ready for iPhone Duo, consultada el 15 de septiembre de 2026: “Xcode 27.1 beta. Get the latest SDKs to build, run, and test your app for iPhone Duo. Coming later this month”. ↩↩↩↩↩

  2. Apple, Xcode 27 Release Notes, consultadas el 15 de septiembre de 2026 tras la versión GA. Secciones citadas: Overview; Linking, Deprecations (“The ld64 linker has been removed and the -ld_classic option is no longer supported.” 165165518); Intel Deprecation, New Features (ARCHS_STANDARD, 161837535) y Deprecations (solo Apple silicon, citada íntegra, 162138432); Previews, Deprecations (“PreviewProvider and its family of preview modifiers.” 144168701) y New Features (#Preview(arguments:), 167544057); Swift Compiler, New Features (escáner de dependencias y el requisito de nombre de módulo único, extractado, 136303612) y Known Issues (SE-0508, 180969028; frase de la solución citada íntegra); System, New Features y Resolved Issues (177911316); Address Sanitizer, Known Issues (178072780); Instruments, Deprecations (166097304); Device Hub, Deprecations (160482487); devicectl, New Features (170812159) y Deprecations (183772705); Simulator, New Features (179846743, 172303413) y Known Issues (141290052); Interface Builder, New Features; C++ Standard Library, New Features y Deprecations; Organizer; Coding Intelligence (171990272, 172857081); Source Editor, New Features (editor de Markdown, 175022151); Localization; Icon Composer; StoreKit Testing in Xcode; Testing; Swift Package Manager, New Features (--maximum-repetitions, 177561078; resumen de fallos, 168311253); Debugging. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  3. Apple, Xcode support: minimum requirements and supported SDKs, consultada el 15 de septiembre de 2026. Fila de Xcode 27: macOS Tahoe 26.6 o posterior; SDK iOS 27, tvOS 27, watchOS 27, visionOS 27, macOS 27, DriverKit 27; deployment targets iOS 15 a 27, iPadOS 15 a 27, tvOS 15 a 27, watchOS 9 a 27, visionOS 1 a 27, macOS 12 a 27, DriverKit 21 a 27; soporte de dispositivos iOS 17, tvOS 17, watchOS 10, visionOS 1 o posterior; simulador iOS 17, tvOS 17, watchOS 10, visionOS 1 o posterior; compilador Swift 6.4 con modos de lenguaje 6, 5, 4.2 y 4. Fila de Xcode 26.6: macOS Tahoe 26.2 a 26.x; SDK en 26.5 con DriverKit 25.5; deployment targets iOS 15, tvOS 15, watchOS 8, visionOS 1, macOS 11, DriverKit 20; soporte de dispositivos y simulador desde iOS 15, tvOS 15, watchOS 8, visionOS 1; Swift 6.3. ↩↩↩↩↩↩

  4. Reproducción del autor en Xcode 27.0 (27A266a) con DEVELOPER_DIR apuntando a esa versión, macOS 26.6.2 (25G83), 15 de septiembre de 2026. xcodebuild -version: “Xcode 27.0 Build version 27A266a”; swift --version: “Apple Swift version 6.4 (swiftlang-6.4.0.34.1 clang-2100.3.34.1)”; el usr/bin de la cadena de herramientas lista un solo enlazador, ld, y ld -v imprime “PROJECT:ld-27037.1” compilado el “Aug 25 2026”; con un hello.c que contiene int main(void){return 0;}, clang hello.o -o hello_classic -Xlinker -ld_classic imprimió “ld: warning: -ld_classic is no longer supported and will be ignored” y salió con 0, y clang hello.c -o hello_ld64 -Wl,-ld64 imprimió “ld: library ‘d64’ not found” y “clang: error: linker command failed with exit code 1 (use -v to see invocation)” y salió con 1 sin archivo de salida. xcodebuild -showBuildSettings -sdk macosx sobre Yawara.xcodeproj, un proyecto multiplataforma (SUPPORTED_PLATFORMS = iphoneos iphonesimulator macosx xros xrsimulator) que no imprime ninguna línea ARCHS_STANDARD sin un argumento -sdk: ARCHS_STANDARD = arm64 x86_64 con MACOSX_DEPLOYMENT_TARGET = 26.0, ARCHS_STANDARD = arm64 con 27.0, ARCHS_STANDARD_64_BIT = arm64 x86_64 en ambos. El struct Container de nueve líneas con var items: [Int] = [] y un accessor @storageRestrictions(initializes: storage) init(initialValue): con el getter primero falla con “error: initializers may only be declared within a type” en la línea del init; con el accessor primero compila con salida 0. SwiftUI.swiftmodule/arm64e-apple-ios.swiftinterface en el SDK de iPhoneOS 27.0: @available(anyAppleOS, deprecated: 27.0, message: "Use #Preview instead.") en las líneas 14971 (public protocol PreviewProvider), 14978 (su extensión) y 14991 (PreviewPlatform); “Use #Preview with a Widget timeline provider or entries instead.” en 15023 (PreviewContextKey), 15029 (PreviewContext) y 15069 (previewContext); “Use the device picker in Xcode’s canvas.” en 15053 (previewDevice); “Use #Preview(traits: .sizeThatFitsLayout) or .fixedLayout(width:height:) instead.” en 15058 (previewLayout); “Use #Preview("name") instead.” en 15063 (previewDisplayName); “Use #Preview(traits: .landscapeLeft) or other orientation traits instead.” en 15075 (previewInterfaceOrientation); un swiftc -c de una conformancia simple a PreviewProvider no emitió advertencia con -target arm64-apple-ios27.0-simulator, ios26.0 ni ios17.0; un archivo que aplica previewLayout(.sizeThatFits), previewDisplayName("Card") y previewDevice(PreviewDevice(rawValue: "iPhone 18 Pro")) dentro de un PreviewProvider emitió tres advertencias [#DeprecatedDeclaration] con ios27.0 (“‘previewLayout’ was deprecated in any Apple OS 27.0: Use #Preview(traits: .sizeThatFitsLayout) or .fixedLayout(width:height:) instead.” y los mensajes correspondientes de previewDisplayName y previewDevice) y ninguna con ios26.0 ni ios17.0. Una prueba con cuatro protocolos, cada uno con un struct que conforma a él y un parámetro any P en una firma de función, compilada con -target arm64-apple-ios27.0-simulator: @available(iOS, deprecated: 27.0) solo, @available(anyAppleOS, deprecated: 27.0) solo y @available(iOS 13.0, *) encima de @available(iOS, deprecated: 27.0) advirtieron cada uno en la línea de la conformancia y en el tipo del parámetro any P (“‘P1’ was deprecated in iOS 27.0”, “‘P2’ was deprecated in any Apple OS 27.0”, “‘P4’ was deprecated in iOS 27.0”), mientras que el par del SDK, @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *) encima de @available(anyAppleOS, deprecated: 27.0), no produjo advertencia en ninguno de los dos; las llamadas a métodos a través de esos existenciales no produjeron diagnóstico para ninguno de los cuatro, y con ios26.0 ninguno de los cuatro advirtió. En la interfaz, PreviewProvider está en las líneas 14970 a 14972 bajo exactamente ese par; previewLayout, en las líneas 15058 a 15059, lleva solo la deprecación anyAppleOS en su propia declaración, dentro de una extension SwiftUICore.View cuyo atributo de introducción está en la línea 15051. Un archivo con dos vistas que asignan _page = State(initialValue: StickerPage(title: title)) dentro de init(title:), una con @State private var page: StickerPage y otra con @State private var page = StickerPage(), compiló con ios27.0 con salida 0 y sin diagnósticos. Las pruebas de @State, cada una un StickerPageView con @State private var page y let title: String, compiladas con swiftc -c -target arm64-apple-ios27.0-simulator contra el SDK de iPhoneSimulator 27.0: el primer ejemplo de Apple, @State private var page = StickerPage() con un init(title:) que asigna self.page y luego self.title, falló con “error: variable ‘self.title’ used before being initialized” en la línea de self.page, salida 1; el mismo archivo con self.title = title movido por encima de la asignación de self.page compiló, salida 0; el segundo ejemplo de Apple, @State private var page: StickerPage sin valor inicial y una extensión que llama a self.init(page: page, title: title), compiló, salida 0, y -Xfrontend -dump-macro-expansions mostró que la macro emite private var _page: SwiftUICore.State<StickerPage> con un accessor @storageRestrictions(initializes: _page) init(initialValue). xcrun devicectl --version: 642.16; devicectl list devices --json-output escribió "jsonVersion": 5. El Info.plist de Icon Composer dentro de 27A266a: CFBundleShortVersionString 27.0. Pruebas de module maps contra el SDK de iPhoneSimulator 27.0 con -target arm64-apple-ios27.0-simulator: dos directorios, cada uno con un module.modulemap que declara module Widget, más un único main.swift que lo importa; con ambos en la ruta de búsqueda, swiftc -typecheck salió con 1 en 20 de 20 ejecuciones (“error: redefinition of module ‘Widget’”, “note: previously defined here”) y swiftc -scan-dependencies salió con 0 en 20 de 20 ejecuciones mientras imprimía el mismo error y la misma nota en stderr en cada ejecución y escribía un grafo cuya entrada Widget apunta al module map del primer directorio, y al module map del otro directorio una vez que invertí los dos argumentos -I; un Vendor/module.modulemap que declara SQLite3 en la ruta de búsqueda escaneó con salida 0 y stderr vacío en 20 de 20 ejecuciones, resolvió SQLite3 al module map incorporado, y un archivo que llama a sqlite3_open no pasó la verificación de tipos, con “error: cannot find ‘sqlite3_open’ in scope”, hasta que el directorio salió de la ruta de búsqueda. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩

  5. Apple, App Store Connect release notes, consultadas el 15 de septiembre de 2026. La entrada del 14 de septiembre de 2026 está citada íntegra en la tabla de arriba; las entradas del 9 de septiembre de 2026 registran las subidas con el SDK RC y agregan especificaciones de capturas de pantalla y vistas previas de app para iPhone Duo, iPhone 18 Pro Max, iPhone 18 Pro, Apple Watch Ultra 4 y Apple Watch Series 12, con “Support for uploading assets for iPhone Duo in App Store Connect will be available later this year.” (la subida de recursos para iPhone Duo en App Store Connect estará disponible a finales de este año). ↩↩↩↩↩

  6. Apple, iOS & iPadOS 27 Release Notes, SwiftUI, New Features (105893279), consultadas el 15 de septiembre de 2026. Fuente de “Xcode 27 introduces a new @State implementation that avoids this repeated evaluation. This new behavior back-deploys to iOS 17 aligned OSes. The new @State is implemented with a Swift macro. It is largely source compatible with the property wrapper version, with a few exceptions.”; de “If you provide an initial value at @State declaration, and also try to assign a value to it in an initializer, the initializer value is discarded. This behavior has not changed because of the macro, but some such cases no longer compile:” con el listado de StickerPageView; de “When all stored members of a struct are private, the compiler synthesizes a private init that can be used in an extension of the same type:” con su listado; y de “The state macro disables this synthesized initializer. So the code above no longer compiles. To mitigate, assign value to members explicitly:”; también de las dos excepciones sin listado, “In rare situations, the automatic inference of generic arguments of @State is less flexible with the macro implementation. Write the type with more specificity.” y “Composing @State with other property wrappers or macros is not supported.” La sección UIKit del mismo documento contiene los dos requisitos citados en el paso 6: New Features, “iOS and iPadOS apps built with the 27.0 SDK or later are required to include a launch screen.” (168247372), y Deprecations, “Apps built with the latest SDK must adopt the scene-based life cycle or they fail to launch.” (141837548). ↩↩↩↩↩↩↩↩↩↩↩

  7. Cal Stephens, SE-0508: Array expression trailing closures, Swift Evolution, estado “Implemented (Swift 6.4)”, implementación swiftlang/swift#86244, consultada el 15 de septiembre de 2026. La subsección “Init accessors” es la fuente de “One other case where this can result in an error is for properties with both an init accessor and initial value that is either an array or dictionary literal. If the getter is declared before the init accessor, we will now attempt to parse as a trailing closure:”, de la frase sobre desambiguación citada arriba y de “This particular case appears to be quite rare in practice, it does not appear in the source compatibility suite, or for internal Swift projects at Apple.” ↩

  8. Apple, Xcode 15 Release Notes, Linking, New Features (108915312), consultadas el 15 de septiembre de 2026: “The classic linker can still be explicitly requested using -ld64, and will be removed in a future release.” (el enlazador clásico todavía se puede pedir explícitamente con -ld64 y se eliminará en una versión futura). ↩↩

  9. Apple, Releases, feed RSS consultado el 17 de septiembre de 2026, con lastBuildDate “Wed, 16 Sep 2026 14:00:00 PDT”. Ítems con fecha del miércoles 16 de septiembre de 2026: “TestFlight Update”, “Xcode 27.2 beta (27B5019j)”, “iOS 27.2 beta (24B5084k)”, “iPadOS 27.2 beta (24B5084k)”, “macOS 27.2 beta (26B5086k)”, “tvOS 27.2 beta (24K5088l)”, “visionOS 27.2 beta (24N5088l)”, “watchOS 27.2 beta (24S5086l)”; ningún título de ítem contiene 27.1. Apple, Xcode 27.2 Beta Release Notes, consultadas a través del endpoint JSON de documentación el 17 de septiembre de 2026: Overview (la frase sobre iPhone Duo y el requisito de macOS Tahoe 26.6), Project Format, New Features (184661114), SDK, Known Issues (187160501). Las secciones de las notas son General, Device Hub, Previews, Previews & Playgrounds, Project Format, SDK y Simulator; ninguna menciona ld64, los nombres de módulo, @State ni PreviewProvider. Las Xcode 27 Release Notes, consultadas de nuevo el mismo día, conservan sin cambios las entradas de Xcode 27 citadas en este post, y traen una entrada ausente el 16 de septiembre: Enhanced Security, Known Issues (187057599), citada en la actualización. El problema conocido de Simulator en las notas de la beta de 27.2 es el 141290052. ↩↩↩↩↩↩↩↩

  10. Apple, Releases, feed RSS descargado el 19 de septiembre de 2026, última fecha de generación Fri, 18 Sep 2026 14:00:00 PDT: “Xcode 27.1 beta (27A9269)” con fecha Fri, 18 Sep 2026 10:00:00 PDT y “TestFlight Update” con fecha Fri, 18 Sep 2026 14:00:00 PDT. Apple, Xcode 27.1 Beta Release Notes, descargadas por el endpoint JSON de la documentación el 19 de septiembre de 2026: Overview (citado por la lista de SDK y el requisito de macOS Tahoe 26.6); Mac Catalyst, Known Issues (185924957, 187046347, cada uno con su solución); Previews, New Features (182598534); Simulator, Known Issues (187708500, 187708663, 187708767); las notas no tienen otras secciones. El índice de notas de versión de Xcode, descargado el mismo día, lista Xcode 27 Release Notes, Xcode 27.1 Beta Release Notes y Xcode 27.2 Beta Release Notes. Apple, notas de versión de App Store Connect, 18 de septiembre de 2026, TestFlight update, citada completa. Apple, Xcode 27.2 Beta Release Notes, descargadas el 17 y el 19 de septiembre de 2026: las dos descargas difieren solo en el Overview, donde la frase del 17 de septiembre “The iOS SDK and simulator support for iPhone Duo will be available later this month in an upcoming release of Xcode 27.1.” queda reemplazada por un recuadro, “Download Xcode 27.1 beta to get the iOS SDK and simulator support for iPhone Duo.”, cuyo enlace apunta a https://developer.apple.com/download/applications/. Las Xcode 27 Release Notes descargadas el 19 de septiembre son idénticas a la descarga del 17 de septiembre. Apple, “Get ready with the latest beta releases”, noticias, 16 de septiembre de 2026: “When iPhone Duo becomes available on October 23, it will run iOS 27.1.” Apple, “App Store submissions now open for the latest OS releases”, noticias, 9 de septiembre de 2026, el párrafo que empieza con “Starting April 2027”, citado; Apple, Upcoming Requirements, descargada el 19 de septiembre de 2026, entrada más reciente “SDK minimum requirements”, “Since April 28, 2026”. Apple, ArrangementView, JSON de documentación descargado el 19 de septiembre de 2026, disponibilidad iOS 27.1 e iPadOS 27.1, marcada como beta. La misma disponibilidad, iOS 27.1 e iPadOS 27.1 en beta, aparece en las páginas de UIArrangementViewController, reservedRegions(kind:options:layoutDirectionBehavior:), reservedRegions(kind:options:) y toolbarVerticalBehavior(_:), cada una descargada el mismo día. ↩↩↩↩↩↩↩↩↩↩

  11. Apple, Releases, feed RSS descargado el 1 de octubre de 2026: “Xcode 27.2 beta 2 (27B5028f)” con fecha Mon, 28 Sep 2026 10:00:00 PDT junto a “iOS 27.0.1 (24A446)”, “iPadOS 27.0.1 (24A446)”, “macOS 27.0.1 (26A434)”, “visionOS 27.0.1 (24M372)” y, a las 13:00:00 PDT, “watchOS 27.0.1 (24R365)”; los ítems de Xcode del feed son “Xcode 27.2 beta 2 (27B5028f)”, “Xcode 27.1 beta (27A9269)”, “Xcode 27 (27A266a)” y “Xcode 26.6 (17F113)”. Apple, Xcode 27.2 Beta 2 Release Notes y Xcode 27 Release Notes, descargadas a través del endpoint JSON de la documentación el 1 de octubre de 2026; el texto de la página de Xcode 27 coincide con la descarga del 26 de septiembre. ↩↩↩↩

  12. Apple, Releases, feed RSS descargado el 11 de octubre de 2026, con fecha de última actualización del feed Tue, 06 Oct 2026 10:00:00 PDT: “Xcode 27.1 RC (27A9275)” con fecha Mon, 05 Oct 2026 10:00:00 PDT; los ítems de Xcode del feed son “Xcode 27.1 RC (27A9275)”, “Xcode 27.2 beta 2 (27B5028f)”, “Xcode 27.1 beta (27A9269)”, “Xcode 27 (27A266a)” y “Xcode 26.6 (17F113)”. Apple, App Store Connect release notes, descargadas el 11 de octubre de 2026, entrada con fecha del 5 de octubre de 2026, “App Store Connect updates”, citada. Apple, Xcode 27.1 RC Release Notes, descargadas el 11 de octubre de 2026, Overview: “Xcode 27.1 RC includes Swift 6.4 and SDKs for iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27.” ↩↩↩

  13. Apple, Releases, feed RSS descargado el 15 de octubre de 2026 a las 04:36 UTC (14 de octubre, 21:36 hora del Pacífico): “Xcode 27.2 beta 3 (27B5038j)” con fecha Wed, 14 Oct 2026 10:00:00 PDT; “iOS 27.2 beta 4 (24B5110a)”, “iPadOS 27.2 beta 4 (24B5110a)”, “macOS 27.2 beta 4 (26B5112a)”, “visionOS 27.2 beta 4 (24N5114a)” y “watchOS 27.2 beta 4 (24S5112a)” con fecha Tue, 13 Oct 2026 10:00:00 PDT; los ítems de Xcode del feed son “Xcode 27.2 beta 3 (27B5038j)”, “Xcode 27.1 RC (27A9275)”, “Xcode 27.1 beta (27A9269)”, “Xcode 27 (27A266a)” y “Xcode 26.6 (17F113)”. Apple, Xcode 27.2 Beta 3 Release Notes, descargadas a través del endpoint JSON de la documentación el 15 de octubre de 2026 a las 04:38 UTC (14 de octubre, 21:38 hora del Pacífico) y comparadas con la copia de la beta 2 guardada el 14 de octubre de 2026 a las 05:09 UTC (13 de octubre, 22:09 hora del Pacífico) para el post sobre HomeView: sin recuadro; Interface Builder, Resolved Issues (186354589, 187747632); Simulator Runtimes, Known Issues (188407822); Simulator, Resolved Issues in Xcode 27.2 Beta 2 (141290052, 187950199). Apple, Xcode 27 Release Notes, descargadas a través del endpoint JSON de la documentación el 15 de octubre de 2026 a las 05:03 UTC (14 de octubre, 22:03 hora del Pacífico): su contenido es idéntico a una copia guardada el 11 de octubre de 2026, y 141290052 sigue bajo Simulator, Known Issues. Apple, App Store Connect release notes, descargadas el 15 de octubre de 2026 a las 05:04 UTC (14 de octubre, 22:04 hora del Pacífico), entrada con fecha del 14 de octubre de 2026, “TestFlight update”: “You can now submit apps built with Xcode 27.2 beta 3 using the SDK for iOS 27.2 beta 4, iPadOS 27.2 beta 4, macOS 27.2 beta 4, tvOS 27.2 beta 3, visionOS 27.2 beta 4, and watchOS 27.2 beta 4 for internal and external testing.” ↩↩↩↩

  14. Apple, Releases, feed RSS descargado el 15 de octubre de 2026 a las 17:16 hora del Pacífico (00:16 UTC, 16 de octubre): “Xcode 27.1 (27A9275)” con fecha Thu, 15 Oct 2026 13:00:00 PDT, el mismo número de build que el ítem de la RC del 5 de octubre de la descarga del 11 de octubre, que el feed ya no incluye. Apple, Xcode 27.1 Release Notes, descargadas a través del endpoint JSON de la documentación el 15 de octubre de 2026 a las 17:21 hora del Pacífico, con el título cambiado desde “Xcode 27.1 RC Release Notes”; Overview: “Xcode 27.1 includes Swift 6.4 and SDKs for iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27.”; los dos Known Issues del simulador del iPhone Duo, 187708663 y 187708767, sin cambios. Apple, App Store Connect release notes, descargadas el 15 de octubre de 2026 a las 17:20 hora del Pacífico, entrada con fecha del 15 de octubre de 2026, “App Store Connect updates”: “You can now upload apps built with Xcode 27.1 using the SDK for iOS 27.1, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0, and watchOS 27.0 for the App Store, and for internal and external testing through TestFlight.” y “Submit your iPhone Duo optimized apps and games in App Store Connect today. Starting April 2027, any apps or games submitted will need to include screenshots for iPhone Duo.” El feed de noticias para desarrolladores de Apple, descargado en la misma hora, no tiene ningún ítem sobre esta versión. Apple, Xcode 27 Release Notes, descargadas a través del endpoint JSON de la documentación el 15 de octubre de 2026 a las 17:26 hora del Pacífico: su texto es idéntico a la copia guardada el 11 de octubre de 2026. Los ítems de Xcode del feed en la descarga de las 17:16: “Xcode 27.1 (27A9275)”, “Xcode 27.2 beta 3 (27B5038j)”, “Xcode 27.1 beta (27A9269)”, “Xcode 27 (27A266a)” y “Xcode 26.6 (17F113)”. ↩↩↩↩

  15. Apple, Releases, feed RSS descargado el 26 de octubre de 2026 a las 16:12 hora del Pacífico: “iOS 27.2 (24B91020)”, “iOS 27.2 (24B119)”, “iPadOS 27.2 (24B119)”, “macOS 27.2 (26B123)”, “tvOS 27.2 (24K122)”, “visionOS 27.2 (24N120)” y “watchOS 27.2 (24S118)” con fecha Mon, 26 Oct 2026 10:00:00 PDT; “TestFlight 4.4.1” con fecha Thu, 22 Oct 2026 14:00:00 PDT; “Xcode 27.2 RC (27B48)” con fecha Mon, 19 Oct 2026 10:00:00 PDT, el ítem de Xcode más reciente; ningún título de ítem nombra una versión de iOS 27.1. Apple, Xcode 27.2 RC Release Notes, descargadas a través del endpoint JSON de la documentación el 26 de octubre de 2026, servidas con un Last-Modified de Mon, 19 Oct 2026 04:56:10 GMT: Overview, citado; Device Hub, New Features (189236369), Resolved Issues (188313956, 188326513), Known Issues (189261485 con FB25077755, 189465196 con solución provisional), citados; Instruments (168530263), Memory Gauge (187611943), XCTest UI Automation (188422137); Mac Catalyst, Known Issues (185924957); SDK, Known Issues (187160501), citado; Simulator, Resolved Issues (190126101, 190155353). Apple, App Store Connect release notes, consultadas el 26 de octubre de 2026: entrada del 20 de octubre de 2026, citada completa; 22 de octubre de 2026, “TestFlight update”: “TestFlight 4.4.1 is now available on the App Store for iPhone and iPad. This update includes: Support for iPhone Duo. Stability improvements and bug fixes.” Apple Support, “Apple security releases”, consultada el 26 de octubre de 2026: la fila “iOS 27.1,” “This update has no published CVE entries.,” “iPhone Duo,” “23 Oct 2026.” Apple Newsroom, “iPhone Duo arrives at Apple Store locations worldwide”, 23 de octubre de 2026: “On Friday, October 23, the highly anticipated iPhone Duo made its debut at Apple Store locations worldwide.” El índice iOS & iPadOS Release Notes, consultado el 26 de octubre, lista solo “iOS & iPadOS 27 Release Notes” e “iOS & iPadOS 27.2 Release Notes”. Mac del autor, 26 de octubre de 2026, Xcode 27.1 (27A9275): el SystemVersion.plist de los SDK iPhoneOS e iPhoneSimulator 27.1 indica ProductBuildVersion 24A94232. ↩

Artículos relacionados

macOS 27 Golden Gate ya salió: qué cambia para desarrolladores

macOS 27 Golden Gate salió el 14 de septiembre solo en Apple silicon: último año general de Rosetta, instaladores que pa…

41 min de lectura

La macro @State: lo que Xcode 27 deja de compilar

Xcode 27 reimplementa el @State de SwiftUI como una macro de Swift. La ruptura llega al actualizar el toolchain, no el d…

24 min de lectura

Luz en pixel art: día, noche, clima y sombras

Cómo Pokémon Cristal y Esmeralda llevan el día, la lluvia y la sombra, medido en su código, y un encargo de día, clima y…

202 min de lectura