Notas de versión de macOS 27: obsolescencias, rupturas y correcciones
macOS 27 Golden Gate salió el lunes 14 de septiembre de 2026 como la build 26A428, con su SDK, la build 26A425, dentro de Xcode 27 (27A266a) ese mismo día. Las notas de la versión de Apple abarcan 86 áreas con encabezado y 272 entradas: 68 funciones nuevas, 173 problemas resueltos, 18 problemas conocidos y 13 obsolescencias. Esta publicación las lee pensando en quien desarrolla para Mac: las entradas que cambian lo que hace una app en el momento en que se enlaza con el SDK 27, los cambios del sistema operativo que golpean sin recompilar nada, las 13 obsolescencias contrastadas con los propios encabezados e interfaces de Swift del SDK, y lo que pude y no pude verificar en una Mac que todavía ejecuta 26.6.2. La publicación sobre la GA de Golden Gate cubre Rosetta y el valor predeterminado arm64 del instalador; esta cubre el resto.123
TL;DR
- Builds. Dispositivo 26A428, SDK 26A425; el número del SDK no es el del dispositivo, algo que importa cuando un reporte de error pide uno. El índice de notas de la versión de Apple y su feed de versiones no listan ningún macOS 27.0.1 al 26 de septiembre; las entradas más recientes son 27 y la beta 2 de 27.2 (26B5091g) del 21 de septiembre.137
- Comportamiento al enlazar con 27. Trece cambios alteran lo que hace una app en el momento en que se enlaza con el SDK 27: imágenes de ítems de menú que no son símbolos ocultas, y los ítems que solo tienen imagen pierden su excepción;
NSOpenPanelque deducecanChooseFilesde los tipos de contenido; el ítem de menú Layout Orientation que pasa a estar bajo Font; accesorios de la barra de título que dibujan fuera de sus límites; prompts deTextFieldque aceptan estilos;TextRendererenTextseleccionable; modificadores de control restablecidos dentro de sheets y popovers; el cálculo del área segura encontainerRelativeFrame;LabeledContentconvertido en subtítulo de menú;TabViewen inspectores que cambia al estilo de pestañas;Listque acepta drops que antes rechazaba;newDocumentque recibe un documento en memoria; y, para Mac Catalyst, el mandato del ciclo de vida por escenas y la restauración de estado extendida.2 - Sin necesidad de recompilar. Las imágenes de símbolo de los ítems de menú desaparecen en cualquier app enlazada con macOS 26.0 o posterior, y en los menús de SwiftUI y UIKit sin ninguna condición de SDK; los gesture recognizers pasan a ser exclusivos de la primera jerarquía de vistas que recibe el hit-test, los gestos atascados se cancelan solos, el
locationInView:base devuelveNSZeroPoint,launchdfigura como que ya no carga property lists en cuarentena, termina el acceso directo a la base de datos de TCC, el acceso a contenedores de otros equipos se deniega sin preguntar, XProtect puede cercar datos de apps, el tráfico de MDM y de actualizaciones de software necesita TLS 1.2 con cifrados del nivel de ATS, y las apps que un usuario configuró como “Open using Rosetta” se inician de forma nativa.2 - 13 obsolescencias, cuatro de ellas de API.
PHAssetResource.originalFilenamesolo advierte con un deployment target de 27.0 (macos(10.15, 27)en el encabezado);FileDocumentlleva la versión blanda100000.0y nunca advierte;calendar.deleteEventsya no está en la interfaz de App Intents, así que el nombre antiguo no compila;DVDPlaybacksigue en el SDK 27.0 como stub, con encabezados y módulo, en contra de lo que dice la nota, y advierte por debajo de un mínimo de 27.0 y falla con él. Las otras nueve son comportamiento del sistema operativo, apps, formatos o restos de las betas, no API.23 - El SDK confirma el nuevo AppKit.
NSRefreshController,NSTextSelectionManager, las propiedadesroleconNSToolbarItemGroup.RoleyNSSegmentedControlRole,preferredImageVisibility,cancellableByScrollGesturey la opciónNSApplicationPresentationDisableScreenCornerInteractionsestán todas anotadasmacos(27.0); los frameworksDiskImageKityNowPlayingestán presentes;Systemtiene su tipoStat; StoreKit tieneassignedyBundledSubscription, y donde las notas dicenassignmentRevokedla interfaz diceassignmentRevocation.3
¿Qué build es cuál?
| Dónde | Build | Evidencia |
|---|---|---|
| Dispositivo, macOS 27.0 | 26A428 | Feed de versiones, lunes 14 de septiembre de 20261 |
| SDK dentro de Xcode 27 (27A266a) | 26A425 | MacOSX27.0.sdk/System/Library/CoreServices/SystemVersion.plist, ProductBuildVersion3 |
| macOS 27.2 beta 2 | 26B5091g | Feed de versiones, lunes 21 de septiembre de 20261 |
| macOS 27.0.1 | ninguna | No está en el feed de versiones ni en el índice de notas de la versión de macOS al 26 de septiembre17 |
| App Store Connect | acepta el SDK GA de 27.0 | “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 a la App Store y a las pruebas internas y externas de TestFlight), 14 de septiembre6 |
Las notas abren con dos frases de alcance, “The macOS 27 SDK provides support to develop apps for Mac computers running macOS 27 Golden Gate. The SDK comes bundled with Xcode 27, available from the Mac App Store,” (el SDK de macOS 27 permite desarrollar apps para Mac con macOS 27 Golden Gate y viene incluido en Xcode 27, disponible en la Mac App Store) y luego recorren 86 áreas con encabezado. Al contar los ítems de lista bajo cada encabezado salen 68 funciones nuevas, 173 problemas resueltos, 18 problemas conocidos y 13 obsolescencias. Siri aporta 26 resueltos y seis conocidos, SwiftUI 21 nuevos y 19 resueltos, AppKit ocho nuevos y 18 resueltos, Core AI 11 resueltos, y StoreKit Testing in Xcode 10 resueltos y dos conocidos.2 La publicación sobre las notas de iOS 27 cubre el lado del iPhone, donde aparecen las mismas entradas de SwiftUI con la redacción de iOS; la publicación sobre Xcode 27 cubre la cadena de herramientas.
Las notas de la beta 2 de 27.2, fechadas el 21 de septiembre, son cortas: un fallo de autocompletado de código en Xcode que figura como corregido, una obsolescencia de AppKit (“The EnablePasteboardPrivacyDeveloperPreview user default has been removed.”, es decir, se eliminó ese user default), un problema conocido de Notifications en instalaciones limpias, un problema conocido de Shortcuts, los dos problemas conocidos de StoreKit Testing que aparecen más abajo pasando a corregidos, y una corrección nueva de StoreKit Testing sobre la elegibilidad para ofertas introductorias después de SKTestSession.clearTransactions(). Aparte de esas entradas de StoreKit Testing, nada de ellas toca las entradas de 27.0 de esta publicación.4
¿Qué cambia en el momento en que enlazas con el SDK de macOS 27?
Apple condiciona los cambios de comportamiento al SDK con el que se enlaza una app, así que estos no le hacen nada a la build que ya publicaste y todos se activan con el primer archivo que generes desde Xcode 27. Cito la nota de cada uno:2
- Imágenes de menú que no son símbolos, y la excepción del título vacío. El cambio de las imágenes de símbolo, más abajo, no necesita recompilar; la recompilación se lleva el resto. “For applications linked on the macOS 27 SDK, both symbol and non-symbol menu item images are now automatically hidden. For applications linked on earlier SDKs, non-symbol images remain automatically visible, preserving compatibility with existing application behavior.” (con el SDK de macOS 27 se ocultan automáticamente las imágenes de símbolo y las que no lo son; con SDK anteriores, las que no son símbolos siguen visibles). Y en sentido contrario para las builds antiguas: “For applications linked on SDKs prior to macOS 27, NSMenu now automatically shows menu item images if the menu item title and attributed title are both empty. This preserves existing application behavior when the image is the only representation of the menu item content. When linking against the macOS 27 SDK, these images will automatically be hidden.” (con SDK anteriores a macOS 27, NSMenu muestra la imagen si el título y el título con atributos están vacíos; al enlazar con el SDK de macOS 27, esas imágenes se ocultan). Un ítem que solo tiene imagen necesita
preferredImageVisibilityen.visibledespués de recompilar. Mi publicación sobre las imágenes de menú recorre la auditoría. - Los paneles de apertura deducen sus selectores. Figura como corregido: “In apps built with the macOS 27.0 SDK, setting
allowedContentTypesandtreatsFilePackagesAsDirectoriesonNSOpenPaneupdatescanChooseFilesandcanChooseDirectoriesbased on whether the requested types are file or directory types.” (con el SDK 27.0, esas dos propiedades actualizancanChooseFilesycanChooseDirectoriessegún si los tipos pedidos son de archivo o de directorio). (La nota escribe mal el nombre de la clase.) Un panel de apertura que establecía tipos de contenido y luego dependía de uncanChooseDirectories = trueexplícito es el caso que hay que volver a probar. - Layout Orientation se muda. “NSTextView’s
menuForEvent:now returns a context menu in which the Layout Orientation menu item, and its submenu, are located inside the Font submenu. Because this change can cause compatibility issues with some shipping applications, it applies only to applications linked on the macOS 27 SDK.” (el ítem Layout Orientation y su submenú pasan al submenú Font, y solo para apps enlazadas con el SDK de macOS 27). El código que encuentra ese ítem recorriendo el menú se rompe al recompilar. - Los accesorios de la barra de título se desbordan. “When an app is linked on macOS 27.0 or later,
NSTitlebarAccessoryViewControlleris now allowed to draw outside its bounds by default, supporting effects such as shadows and interactive glass effects. During reveal animations, accessories might be clipped for the duration of the animation or when the accessory ishidden.” (por defecto puede dibujar fuera de sus límites, para sombras y efectos de vidrio; durante las animaciones de aparición puede recortarse). - Los prompts de
TextFieldaceptan estilos. “In apps built with the macOS 27.0 SDK,TextFieldrespects custom font and color styling applied to its prompt. Apply styling to theTextprovided toTextField’spromptparameter at initialization.” (respeta la fuente y el color personalizados del prompt; el estilo se aplica alTextque pasas enprompt). Textseleccionable recibeTextRenderer. “In apps built with the iOS 27.0 and macOS 27.0 SDKs, selectableTextviews now supportTextRenderer,” y la entrada corregida que está a su lado dice que un renderer personalizado “now takes effect on aTextview that also has.textSelection(.enabled)applied.” (ahora surte efecto en unTextque también tiene la selección habilitada).- Sheets y popovers. Figura como corregido: “In apps built with the 27.0 SDKs, the
controlSize,buttonSizing,buttonRepeatBehavior,menuIndicatorVisibility, andButtonBorderShapeenvironment values are now reset to their default values in sheets and popovers.” (esos valores de entorno vuelven a sus valores predeterminados dentro de sheets y popovers). Un sheet que heredaba.controlSize(.large)de quien lo presenta deja de hacerlo. containerRelativeFrame. Figura como corregido para las builds de 27.0: “incorrectly accounts for safe-area insets on aScrollView’s non-scrollable axis, causing the calculated scrollable content size to be too small.” (contaba mal los márgenes del área segura en el eje no desplazable de unScrollView, y el tamaño calculado quedaba demasiado pequeño). El sentido de la entrada no está claro, ya que su ejemplo describe contenido que se extiende dentro del área segura en lugar de encogerse; vuelve a probar cualquiercontainerRelativeFramedentro de unScrollViewal recompilar.- Los menús ganan subtítulos. “In apps built with the 27.0 SDKs, a
LabeledContentview used inside aMenumaps its value to the platform menu item’s subtitle.” (el valor de unLabeledContentdentro de unMenupasa a ser el subtítulo del ítem de menú). TabViewen inspectores. “In apps built with the latest SDKs, the appearance ofTabViewsin inspectors now matches their appearance in sidebars, and in both contexts automatically uses the new.tabspicker style.” (en inspectores se ven igual que en barras laterales y usan automáticamente el nuevo estilo.tabs).Listacepta más drops. “In macOS apps built with the macOS 27 SDK,Listaccepts drops in two cases that previously didn’t work: drags with compatible transfer representations are accepted into reorderable content even when the.reorderableItemtransfer type isn’t present, and a.dropDestination(...)modifier declared on a list item now performs the drop.” (acepta drops en dos casos que antes no funcionaban: arrastres compatibles en contenido reordenable aunque falte.reorderableItem, y un.dropDestination(...)declarado en un ítem de la lista). Un manejador de drop que nunca se disparaba en la Mac puede empezar a dispararse.newDocumentrecibe una instancia. “In macOS apps built with the macOS 27 SDK, the action retrieved from the\.newDocumentenvironment value accepts an in-memoryReadableDocumentproduced by an autoclosure. SwiftUI presents a new document window populated with the supplied instance, instead of invoking the document group’s default factory.” (la acción acepta unReadableDocumenten memoria y SwiftUI abre una ventana con esa instancia en lugar de usar la fábrica predeterminada del grupo de documentos).- Mac Catalyst. Bajo las obsolescencias de UIKit: “Apps built with the latest SDK must adopt the scene-based life cycle or they fail to launch,” (las apps compiladas con el SDK más reciente deben adoptar el ciclo de vida por escenas o no se inician) el mismo mandato que la publicación sobre escenas cubre para iOS, y “When linked on iOS 27, tvOS 27, macCatalyst 27, or visionOS 27 SDKs, you can use
UIScene.extendStateRestorationandUIScene.completeStateRestorationto extend state restoration” hasta la transición de segundo a primer plano. Por separado, y sin condición de SDK, “Catalyst apps now behave like AppKit apps when you switch to them with no open windows” (las apps de Catalyst se comportan como las de AppKit cuando cambias a ellas sin ventanas abiertas); ya no crean una ventana salvo que se activen desde el Dock o Spotlight.
Dos entradas, una bajo SwiftUI y otra bajo Swift Charts, pertenecen a esta sección aunque dependen del compilador y no del enlace. La reescritura de la macro @State “back-deploys to iOS 17 aligned OSes” (se retroporta a los sistemas alineados con iOS 17) y cambia lo que compila con Xcode 27: algunas declaraciones que llevan un valor inicial y además asignan en init dejan de compilar, en palabras de Apple “some such cases,” (algunos de esos casos) y desaparece el inicializador privado sintetizado. La publicación sobre la macro @State tiene la auditoría. Y la entrada de Swift Charts, que figura como corregida, describe una advertencia y un posible fallo en tiempo de ejecución: “When your project has a minimum deployment target lower than 27.0, using conditionals inside a Chart closure produces the warning” sobre la conformidad con _ConditionalContent, “and the app might crash at runtime when that content is loaded.” (con un deployment target mínimo inferior a 27.0, los condicionales dentro de un Chart producen la advertencia y la app podría fallar al cargar ese contenido). La advertencia citada lleva un nombre de plataforma vacío, lo que parece un diagnóstico de las betas, y no pude reproducirla: un Chart cuyo closure bifurca con if entre un BarMark y un LineMark pasó el type-check sin diagnósticos contra el SDK 27.0 tanto con un deployment target de 26.0 como con uno de 27.0, el 26 de septiembre. La mitad de la entrada sobre el fallo en tiempo de ejecución es texto de Apple y aquí queda sin probar.23
¿Qué cambia sin recompilar nada?
La otra mitad de las notas describe el sistema operativo, y esto se aplica al binario que publicaste el año pasado.2
- Desaparecen las imágenes de símbolo de los menús. AppKit: “By default,
NSMenuhides all menu item symbol images” (por defecto,NSMenuoculta todas las imágenes de símbolo de los ítems) y el cambio se aplica “to applications linked on macOS 26.0 and later”, así que una build de Xcode 26 pierde sus imágenes de símbolo en una máquina con 27 sin recompilar;preferredImageVisibilityenNSMenuItem,API_AVAILABLE(macos(27.0)), es la forma de anularlo, y la casilla “macOS 26.0 only” del inspector del xib es el segundo interruptor. SwiftUI: “By default, SwiftUI now hides all menu item symbol images in most contexts, while non-symbol images remain visible,” (SwiftUI oculta por defecto las imágenes de símbolo en la mayoría de los contextos, y las demás siguen visibles) conlabelStyle(_:)y.titleAndIconcomo el interruptor para conservarlas, y sin condición de SDK en la entrada. UIKit: “On iPadOS 27.0 and macOS 27.0, the menu bar and context menus present a reduced set of menu item images and do not display images set on menu elements by default,” (la barra de menús y los menús contextuales muestran un conjunto reducido de imágenes y, por defecto, no muestran las asignadas a los elementos de menú) conpreferredImageVisibilityenUIMenuElement, y de nuevo sin condición de SDK. El encabezado coincide con la lectura del sistema operativo: el comentario sobreNSMenuItem.imagedice que “in macOS 27 and later, AppKit determines the visibility of menu item images, and will typically hide images.” (desde macOS 27, AppKit decide la visibilidad de esas imágenes y normalmente las oculta).3 - Los gestos se vuelven exclusivos. “Only the initial hit-tested view hierarchy will activate gesture recognizers until all gestures terminate. A new
exclusiveGestureBehaviorproperty onNSViewallows you to opt-out of this exclusive behavior on a per-view-hierarchy basis. Further, theInfo.plistkeyNSViewGestureRecognizerIsExclusiveallows you to opt-out for the entire app.” (solo la primera jerarquía de vistas que recibe el hit-test activa gesture recognizers hasta que terminan todos los gestos;exclusiveGestureBehaviorpermite excluirse por jerarquía y la clave deInfo.plistpermite hacerlo para toda la app). Una clave complementaria,NSGestureRecognizerSuppressesMainMenuActions, deja que las acciones del menú principal se disparen mientras hay un gesto activo, y “stuck gestures are automatically cancelled after user input has ended for a few seconds,” (los gestos atascados se cancelan solos unos segundos después de que termina la entrada del usuario) con el defaultNSCrashOnStuckGestureTimeoutpara convertir eso en un fallo durante la depuración. Un recognizer en una vista padre que antes se disparaba junto con el de una vista hija ahora espera. - Los recognizers personalizados deben ubicarse por sí mismos. Figura como corregido: el
locationInView:base deNSGestureRecognizer“now returnsNSZeroPointand logs an error pointing the developer at the missing override. CustomNSGestureRecognizersubclasses must provide their ownlocationInView:implementation.” (ahora devuelveNSZeroPointy registra un error que señala el override faltante; las subclases personalizadas deben implementar su propiolocationInView:). Otra entrada describe el default de diagnósticoNSGestureRecognizerCrashOnMissingOverridescomo pensado “to help developers findNSGestureRecognizersubclasses that are missing required overrides to ensure that they always reach a terminal state” (para ayudar a encontrar subclases a las que les faltan overrides necesarios para llegar siempre a un estado terminal); las notas no dicen si también atrapa unlocationInView:faltante. Y losNSClickGestureRecognizers“with a click count greater than 1 will send an action before their multi-click timeout has elapsed.” (con más de un clic envían la acción antes de que venza su tiempo de espera de clic múltiple). launchdy la cuarentena. Figura como corregido: “launchdno longer supports loadinglaunchdproperty list files with the quarantine extended attribute.” (launchdya no carga property lists que tengan el atributo extendido de cuarentena). Las entradas corregidas de Apple a veces describen el error antiguo y a veces la regla nueva; leída como regla, una plist de agente descargada que se instaló con el atributo deja de cargarse.- TCC. Bajo Deprecations: “Apps can no longer access the local TCC database directly.” (las apps ya no pueden acceder directamente a la base de datos local de TCC).
- Contenedores y XProtect. Bajo System Integrity Protection: “Accessing files in other developer teams’ app data containers and app group containers no longer prompts the user for authorization; such accesses are denied by default and can be managed by the user in Privacy & Security settings.” (acceder a archivos en contenedores de otros equipos de desarrollo ya no pide autorización: se deniega por defecto y el usuario lo gestiona en Privacy & Security). Y: “XProtect may now restrict access to app data that is commonly targeted by malicious software.” (XProtect puede restringir el acceso a datos de apps que el malware suele atacar). El problema conocido de Privacy & Security agrega que “a process without a bundle ID cannot be granted access to specific app data containers or app group containers owned by other developer teams,” (a un proceso sin bundle ID no se le puede conceder acceso a contenedores de otros equipos) con Full Disk Access como alternativa.
- TLS para el tráfico gestionado. “Starting in 27.0 operating systems, select system processes now enforce stricter network security (TLS) requirements,” (a partir de los sistemas 27.0, ciertos procesos del sistema exigen requisitos de TLS más estrictos) y nombra MDM, DDM, Automated Device Enrollment, la instalación de perfiles, la instalación de apps y las actualizaciones de software; “Servers must support TLS 1.2 at minimum, using cipher suites and certificates that meet App Transport Security (ATS) requirements.” (los servidores deben admitir como mínimo TLS 1.2, con suites de cifrado y certificados que cumplan los requisitos de ATS). La auditoría de TLS tiene la lista de verificación.
- Rosetta. “On launch, Applications previously set to “Open using Rosetta” by a user will have the application launch natively,” (las apps que un usuario configuró para abrirse con Rosetta se inician de forma nativa) “If Rosetta was previously installed, it is not automatically restored after upgrading to macOS 27.0,” (si Rosetta estaba instalado, no se restaura automáticamente tras actualizar) y los paquetes de instalación sin
hostArchitecture“will now default to arm64.” La publicación sobre la GA reproduce ese valor predeterminado del instalador en 26.6.2. - Neural Engine en segundo plano. La entrada está en la página de macOS y abre con “iOS 27 includes Neural Engine improvements for Apple Intelligence capable devices,” así que conviene leerla como una nota de plataforma compartida: “The system now restricts background access to the Neural Engine, similar to GPU usage restrictions,” (el sistema restringe el acceso al Neural Engine en segundo plano, igual que con la GPU) y “Neural Engine memory usage is now attributed to your app process instead of the system, and appears in the Allocations instrument.” (la memoria del Neural Engine se atribuye al proceso de tu app y aparece en el instrumento Allocations). Una segunda entrada de Core AI dice que el acceso en segundo plano “requires the new entitlement: “com.apple.developer.background-tasks.continued-processing.inference”.” (requiere ese nuevo entitlement).
- Archivos de log. “Unified Logging System archives generated on 27.0 releases cannot be read on macOS 26.1 or earlier due to an updated archive format. macOS 26.2 or later is required to read these archives.” (los archivos generados en 27.0 no se pueden leer en macOS 26.1 o anterior; hace falta 26.2 o posterior). Un flujo de soporte que abre paquetes
.logarchivede clientes en una Mac más antigua necesita al menos 26.2. - Las promesas de archivo hacen una aserción. Figura como corregido:
receivePromisedFilesAtDestination:“asserts that it is called during-prepareForDragOperation:,-performDragOperation:, or-concludeDragOperation:. IfreceivePromisedFilesAtDestination:...is called at other times, your application will throw an exception and terminate.” (comprueba que se llame durante esos tres métodos; si se llama en otro momento, la app lanza una excepción y termina). Un receptor que posponía la llamada a una vuelta posterior del run loop ahora termina.
¿Qué API quedan obsoletas en 27.0?
Las notas traen 13 entradas bajo encabezados de Deprecations repartidas en 11 áreas. Una obsolescencia en unas notas de la versión es una frase; una obsolescencia en el SDK es una anotación de disponibilidad que lee el compilador, y las dos no siempre dicen lo mismo. Contrasté cada entrada con los encabezados y las interfaces de Swift del SDK de macOS 27.0 dentro de Xcode 27:23
| Entrada de la nota | Lo que dice el SDK |
|---|---|
“The originalFilename property on PHAssetResource is incorrectly marked as non-nullable, which misrepresents the property value; a new, nullable filename property is available as a replacement.” (está marcada por error como no anulable; la sustituye una nueva propiedad filename anulable) |
API_DEPRECATED("Use filename instead", ios(9, 27), macos(10.15, 27), tvos(10, 27), visionos(1, 27)) en PHAssetResource.h |
“The FileDocument protocol is deprecated. Use ReadableDocument for read-only documents or Document for documents that support reading and writing.” |
@available(macOS, introduced: 11.0, deprecated: 100000.0, message: "Conform your type to Document instead.") en FileDocument: blanda, sin advertencia hoy. ReadableDocument, WritableDocument y Document están todos en la interfaz |
“The calendar.deleteEvents schema has been renamed to calendar.deleteEvent.” |
deleteEvents aparece cero veces en la interfaz AppIntents de macOS; deleteEvent, una vez. Un renombrado sin alias es un error de compilación para quien use el nombre antiguo |
“The DVDPlayback framework has been removed from the macOS 27 Golden Gate SDK and apps cannot build against it. The framework will be removed in a future macOS release.” (se quitó del SDK y no se puede compilar contra él; se eliminará en una versión futura) |
No se quitó del SDK en disco: MacOSX27.0.sdk/System/Library/Frameworks/DVDPlayback.framework contiene un .tbd que exporta 223 símbolos _DVD distintos para los targets x86_64-macos, arm64e-macos y arm64e.x1-macos, una carpeta Headers y un module map. import DVDPlayback pasa el type-check con un deployment target de 26.0 y una advertencia “deprecated in macOS 10.15” en DVDInitialize(); con un target de 27.0 la misma llamada es un error, “unavailable in macOS: No longer supported”. Así que “cannot build against it” se cumple con un mínimo de 27.0 a través de la disponibilidad, y el stub sigue ahí |
| “Encrypted HFS+ (CoreStorage) is deprecated and will not be supported in a future version of macOS.” | Un formato de sistema de archivos, no una API; haz la copia de seguridad en APFS cifrado |
| “Apps can no longer access the local TCC database directly.” | No es una anotación; es una política que aplica el sistema operativo |
| “Apps built with the latest SDK must adopt the scene-based life cycle or they fail to launch.” (UIKit, por lo tanto Mac Catalyst) | Un fallo al iniciar, no una advertencia |
| “If Rosetta was previously installed, it is not automatically restored after upgrading to macOS 27.0.” | Comportamiento del sistema operativo |
“Installer packages which specify no hostArchitecture will now default to arm64.” |
Comportamiento del sistema operativo; reproducido en 26.6.2 en la publicación sobre la GA |
| “Intel-based plugins and loaders may not appear in Settings or trigger notifications of their incompatibility. All Intel-based software will no longer be compatible with macOS 28.0, excluding legacy games.” (los plugins para Intel pueden no aparecer ni avisar de su incompatibilidad; todo el software para Intel dejará de ser compatible con macOS 28.0, salvo juegos antiguos) | Comportamiento del sistema operativo; las carpetas de plugins que Apple enumera son ~/Library/Audio/Plug-Ins/*, ~/Library/Printers/ y ~/Library/ColorPickers/ |
| “AirPort Utility is no longer included with new clean installations of macOS.” | Una app, no una API |
“Meshes compressed using the USDKit export API or usdcrush tool in Beta 1 cannot be decoded by Beta 2, and meshes from Beta 2 cannot be decoded by Beta 1.” |
Una nota entre betas que sobrevivió hasta la página de la GA |
| “Weather Highlights is currently only available in US English.” | Apple la archiva bajo Deprecations; se lee como una nota de disponibilidad |
Hay una obsolescencia blanda fuera de los encabezados de Deprecations, la misma que traen las notas de iOS: .roundedBorder es deprecated: 100000.0 en macOS con el mensaje “Use textFieldStyle(.bordered) with textInputBorderShape(.roundedRectangle)”, que coincide con la entrada de New Features que introduce TextInputBorderShape.3
Las duras son más silenciosas de lo que parecen. El compilador compara la versión de obsolescencia con tu deployment target, no con el SDK, así que macos(10.15, 27) produce una advertencia solo en un target cuyo macOS mínimo sea 27.0. Pasé el type-check a un archivo que lee originalFilename, hace que un tipo conforme a FileDocument y aplica .roundedBorder, contra el SDK 27.0 con dos targets: con arm64-apple-macos26.0 compiló sin ningún diagnóstico, y con arm64-apple-macos27.0 produjo exactamente uno, 'originalFilename' was deprecated in macOS 27: Use filename instead. FileDocument y .roundedBorder quedaron en silencio en ambos.3 Una app de Mac con un mínimo realista no se enterará de ninguna de estas por el compilador; el grep de la lista de más abajo es el aviso.
¿Qué novedades cambian código que ya tienes?
Deslizar para actualizar en la Mac. “In macOS 27.0, AppKit adds NSRefreshController, providing pull-to-refresh functionality for NSScrollView. You can set it with NSScrollView.refreshController, configure a target or action to handle user-initiated refreshes, and call endRefreshing when the refresh completes or beginRefreshing to start one programmatically.” (AppKit agrega deslizar para actualizar a NSScrollView: lo asignas con refreshController, configuras un target o una acción, y llamas a endRefreshing al terminar o a beginRefreshing para iniciarlo por código). La clase y la propiedad refreshController de NSScrollView son ambas API_AVAILABLE(macos(27.0)) en el SDK.23
Selección de texto por gestos. “NSTextSelectionManager provides common text selection interactions (click, drag, shift-click, double/triple-click word/line/paragraph selection) to a NSView with a set of NSGestureRecognizers rather than overriding NSEvent mouse methods. NSTextView now uses NSTextSelectionManager” (ofrece las interacciones habituales de selección de texto mediante gesture recognizers en lugar de sobrescribir los métodos de ratón, y NSTextView ya lo usa) y “Existing NSTextView subclasses that override mouseDown: continue to work through a binary-compatible fallback path.” (las subclases existentes que sobrescriben mouseDown: siguen funcionando mediante una ruta de respaldo compatible). La clase es macos(27.0).23 Junto con la regla de exclusividad de arriba, una vista de texto personalizada que sobrescribe mouseDown: sigue funcionando, pero un gesture recognizer que agregaste a su lado puede ahora cederle el paso al del gestor.
Roles para pestañas. NSToolbarItemGroup y NSSegmentedControl ganan una propiedad role, API_AVAILABLE(macos(27.0)) en ambos, con NSToolbarItemGroup.Role (automatic, tabs, valueSelection) y NSSegmentedControlRole; las notas dicen que un rol tabs es “read by VoiceOver as “tabs”” (VoiceOver lo lee como pestañas) con “a distinct visual appearance.” (una apariencia visual propia). TabsPickerStyle de SwiftUI es la misma idea, y los inspectores lo adoptan automáticamente al recompilar.23
Hot Corners desactivadas. “NSApplication.presentationOptions now includes the .disableScreenCornerInteractions option, which you can use to disable Hot Corners.” (incluye esa opción para desactivar las Hot Corners). En el encabezado es NSApplicationPresentationDisableScreenCornerInteractions, API_AVAILABLE(macos(27.0)), el bit 15 de la máscara de opciones, y el comentario que lo precede dice “.autoHideDock or .hideDock must also be set for this option to take effect.” (también hay que activar .autoHideDock o .hideDock para que surta efecto).23
Documentos, reescritos. “In apps built with the 27.0 SDKs, the new ReadableDocument and WritableDocument protocols support asynchronous reading and writing, progress reporting, and direct access to document URLs,” (los nuevos protocolos admiten lectura y escritura asíncronas, informe de progreso y acceso directo a las URL de los documentos) con Document combinando los dos y FileDocument y ReferenceFileDocument “now deprecated.” Tres entradas derivadas cambian conformidades existentes: el closure makeFileWrapper de FileWrapperDocumentWriter “now receives a second argument, previous: FileWrapper?,” y “Existing call sites must update their closures to accept the new parameter” (los puntos de llamada existentes deben actualizar sus closures para aceptar el nuevo parámetro); los requisitos read(from:progress:) y write(content:to:previous:progress:) están “declared with @concurrent instead of nonisolated,” así que “Conforming types that previously used nonisolated should switch to @concurrent to match” (los tipos que usaban nonisolated deben pasar a @concurrent); y URLDocumentConfiguration “no longer conforms to Sendable.” Una sobrecarga de fileExporter exporta una colección de valores WritableDocument en un solo diálogo. El problema conocido de la misma área: el progreso “might not be presented.” (podría no mostrarse).2
Imágenes, bordes, sliders, menús. “AsyncImage now automatically caches downloaded images using HTTP caching protocols,” (guarda en caché automáticamente las imágenes descargadas según los protocolos de caché HTTP) con inicializadores de URLRequest y View.asyncImageURLSession(_:) para dirigirlo. TextInputBorderShape y textInputBorderShape(_:) llegan con el estilo .bordered. “On macOS, the Slider implementation no longer uses NSSlider,” y los botones con borde de Menu y Picker “no longer use NSPopUpButton in their implementation,” así que el código de dibujo personalizado o de accesibilidad que suponía el control de AppKit por debajo ya no tiene nada que encontrar. GeometryProxy gana concentricCornerRadii y concentricCornerRadii(in:). Los modificadores alert y confirmationDialog con ítem de datos ahora llegan hasta macOS 12.0.2
StoreKit. “Offer code redemption APIs now return a VerificationResult when redemption completes,” (las API de canje de códigos de oferta devuelven un VerificationResult al completarse) Transaction.OwnershipType.assigned y Transaction.RevocationType.assignmentRevoked “support volume purchases,” (admiten compras por volumen) y “Transaction query methods now additionally return transactions assigned to the Managed Apple Account.” (los métodos de consulta de Transaction también devuelven las transacciones asignadas a la Managed Apple Account). Product.ProductType gana Bundles y Suites de suscripción con Product.SubscriptionInfo.BundledSubscription, y partnerName y partnerId llegan a la información de Advanced Commerce. La interfaz trae assigned y BundledSubscription; el caso de revocación no se escribe como lo escribe la nota. Ningún archivo del SDK contiene assignmentRevoked; la interfaz de StoreKit declara public static var assignmentRevocation en Transaction.RevocationType, con el valor raw ASSIGNMENT_REVOKE. El caso es @available(macOS 26.4, *) con @backDeployed(before: macOS 27.0), así que .assignmentRevocation pasa el type-check con un target de 27.0 y necesita if #available(macOS 26.4, *) por debajo de ese mínimo; el nombre de la nota no tiene ningún miembro al que resolverse con ningún target. Una app de Mac que filtra transacciones por tipo de propiedad ahora ve un tercer valor.23
stat en Swift. “System now provides Swift APIs for the C stat, lstat, fstat, and fstatat system calls,” (System ofrece API de Swift para esas llamadas al sistema de C) con un tipo Stat y FilePath.stat(); las notas también listan como corregido un conflicto en el que “Custom FilePath or FileDescriptor extensions that make unqualified calls to stat() or stat(_) (without the Darwin. qualification) might conflict with the new Swift stat() instance methods.” (las extensiones propias que llaman a stat() sin el prefijo Darwin. pueden chocar con los nuevos métodos de instancia). public struct Stat está en la interfaz de System.23
Imágenes de disco, máquinas virtuales, Gatekeeper. “The new DiskImageKit framework provides Swift APIs for creating and managing standalone and stacked disk images in the Apple Sparse Image Format (ASIF) and raw disk image formats, for use with the Virtualization framework via VZDiskImageStorageDeviceAttachment.” (el nuevo framework ofrece API de Swift para crear y gestionar imágenes de disco independientes y apiladas en ASIF y en formato raw, para usarlas con Virtualization). El framework está en el SDK. El reenvío de puertos de vmnet de Virtualization “now support[s] port forwarding when communicating over loopback,” (ahora admite reenvío de puertos por loopback) y spctl gana un comando purge “which will clean up Gatekeeper database entries for apps and executables which are no longer mounted.” (que limpia las entradas de la base de datos de Gatekeeper de apps y ejecutables que ya no están montados). La publicación sobre contenedores es donde aterrizan las API de imágenes de disco para quien automatiza máquinas virtuales.23
Mandos de juego, video, Metal. “The PlayStation® Access™ controller is now supported on macOS, iPadOS, and iOS.” VTLowLatencySuperResolutionScalerConfiguration “now supports a 1.5x scale factor,” y la interpolación de fotogramas “supports arbitrary source dimensions up to 1080p.” Dos correcciones de Metal cubren samplers clamp-to-edge que devolvían cero, una de ellas específica de “the Apple 10 GPU family.”2
Foundation. La corrección de NSURL aparece aquí con la misma redacción que en las notas de iOS: “+[NSURL URLWithString:] no longer double-encodes the % of valid percent-escape sequences when encoding other invalid characters.” (ya no codifica dos veces el % de secuencias de escape válidas al codificar otros caracteres no válidos). En la publicación sobre iOS mostré que la corrección sigue al sistema operativo en el que se ejecuta el código, y que una build de Mac del mismo código seguía produciendo el resultado antiguo %2520 en macOS 26.6.2; espera el resultado nuevo en 27.0 y el antiguo en cualquier 26.x.2
Seguridad de hardware. “arm64e.x1 introduces additional hardware security and performance instructions, including CPA2 for stronger MIE protection,” (introduce instrucciones adicionales de seguridad y rendimiento, entre ellas CPA2 para una protección MIE más fuerte) en “Mac computers with M6 or later chips”; la lista de targets del stub de DVDPlayback de arriba muestra el nombre del slice en la práctica. La publicación sobre arm64e.x1 cubre el build setting.23
Problemas conocidos que conviene planificar
- Las entidades
photos.assetdejan de compilar. “Existing entities that conformed to @AppEntity(schema: .photos.asset) in prior releases might no longer compile in the 27 SDKs because new properties were added to the schema in this release.” (las entidades que conformaban a ese esquema podrían no compilar con los SDK 27 porque se agregaron propiedades nuevas). La solución es adoptar las propiedades detrás de una comprobación de disponibilidad; la publicación sobre las notas de iOS enumera las 12 propiedades que exige el procesador de metadatos, y las notas de macOS traen la misma entrada.2 - Esquema de audio y Siri. “If you adopt the Audio App Schema domain, you might have trouble playing your content using Siri.” (si adoptas ese dominio, puede que tengas problemas para reproducir tu contenido con Siri). Solución: “Adopt an IntentValueQuery that takes the AudioSearch input, or index your entities in Spotlight.” (adopta un IntentValueQuery que reciba AudioSearch o indexa tus entidades en Spotlight).2
SpotlightSearchTooldesborda el modelo del dispositivo. Sin una configuración, “the tool’s description and parameter schema alone exceed the on-device model’s context window before any prompt is added” (la descripción y el esquema de parámetros por sí solos superan la ventana de contexto del modelo local antes de agregar ningún prompt); la solución es una guía acotada como.focused(.documents).2- Files & Folders para procesos sin bundle. A un proceso sin bundle ID “cannot be granted access to specific app data containers or app group containers owned by other developer teams,” y la solución de Apple es Full Disk Access “for the duration of the requirement.” (mientras dure la necesidad). Las herramientas de línea de comandos que leen el contenedor de otra app son el caso.2
- Extensiones de Safari sin firmar. Al desarrollarlas, “unsigned extensions might not appear until rebuilt when using the “Allow Unsigned Extensions” checkbox.” (las extensiones sin firmar podrían no aparecer hasta recompilarlas).2
- Pruebas de StoreKit. “Changing the storefront or locale using
SKTestSessiondoesn’t propagate throughStorefront.updates,” (cambiar la tienda o la configuración regional conSKTestSessionno se propaga) y las compras fallidas “might display error dialogs even whendialogsDisabledis set to true.” (podrían mostrar diálogos de error aunque estén desactivados). Ambas aparecen como corregidas en las notas de la beta 2 de 27.2, que agregan una nueva: una compra de una suscripción dentro de un bundle “incorrectly allows the user to unbundle instead of throwing an error.” (permite por error separarla del bundle en lugar de lanzar un error).24 - Shortcuts. Un intent que usa
DurationoLPLinkMetadata“might fail” (podría fallar) bajo “Describe a change”, y un parámetroUnionValuecon dos tipos numéricos muestra la opción dos veces; declara uno solo.2 - Disco de arranque desde macOS 11. “When a Mac is running macOS 11.0, you might not be able to select the boot volume of macOS 27.0 or later as the startup disk in System Settings.” (con macOS 11.0 quizá no puedas elegir el volumen de macOS 27.0 como disco de arranque en System Settings). La solución es el selector de arranque del botón de encendido.2
- Siri, seis entradas. La selección de fotos después de una búsqueda, “Ask Siri” que aparece donde Siri está desactivada, la falta de comandos de voz para fotos concretas, fragmentos de Maps incompletos, los recuentos al agregar a álbumes, y las imágenes de entidades que no son SF Symbols que no aparecen en los resultados de Siri para apps de terceros. La última te toca revisarla si tus entidades llevan imágenes personalizadas.2
Lo que no pude ejecutar
Esta Mac ejecuta macOS 26.6.2, y una máquina con 27 sigue siendo lo que no tengo. Todo comportamiento del sistema operativo en esta publicación es texto de Apple, citado y marcado como tal; nada de lo anterior dice que un sistema macOS 27 hizo algo porque yo lo vi. Lo que sí pude ejecutar es el SDK: Xcode 27 (27A266a) trae el SDK de macOS 27.0 (26A425) en cualquier Mac que pueda instalarlo, así que las anotaciones de los encabezados, las interfaces de Swift, las carpetas de frameworks y las tres pasadas de type-check son reales, con fecha del 26 de septiembre. Los dos puntos donde el SDK y las notas no coinciden, el stub de DVDPlayback y la forma de escribir el caso de revocación, se informan como lo que muestra el SDK, no como afirmaciones sobre lo que hará una máquina con 27 en tiempo de ejecución.3
Qué haría yo esta semana
- Genera un archivo una vez desde Xcode 27 y repasa contra la app la lista de cambios al enlazar con 27 de arriba antes de notarizar: imágenes de ítems de menú, cualquier panel de apertura que establezca tipos de contenido, cualquier código que recorra el menú contextual de
NSTextView, los accesorios de la barra de título y cualquier sheet que heredara modificadores de control.2 - Prueba los gestos en una máquina con 27 antes que tus usuarios: un recognizer en una vista padre que antes se disparaba junto con el de una hija ahora es exclusivo, y una subclase personalizada de
NSGestureRecognizersinlocationInView:devuelve el origen y registra un error. Vigila la consola en busca de ese error, que según Apple produce AppKit; el defaultNSGestureRecognizerCrashOnMissingOverridesse describe para subclases que no llegan a un estado terminal, y las notas no dicen que cubralocationInView:.2 - Haz grep de
originalFilename,FileDocument,ReferenceFileDocument,.roundedBorder,deleteEventseimport DVDPlayback; el primero solo advierte con un target de 27.0, los tres siguientes son blandos y silenciosos,deleteEventsya no existe, eimport DVDPlaybackse convierte en error el día que subas el mínimo a 27.0.3 - Si distribuyes un agente o un daemon mediante una descarga, quita el atributo de cuarentena de la property list al instalar, o instálala por una ruta que nunca lo lleve; las notas de Apple indican que
launchden 27 ya no carga esos archivos.2 - Si lees el contenedor de otro equipo, elimina ese código o pásalo por Full Disk Access; el aviso desapareció y lo predeterminado es la denegación.2
- Registra el número de build en los reportes de errores desde los dos lugares:
ProcessInfoen la máquina y elSystemVersion.plistdel SDK en la Mac de compilación. Difieren, 26A428 frente a 26A425, y una corrección que está en uno puede no estar en el otro.3
Preguntas frecuentes
¿Cuándo salió macOS 27 y qué build es?
El lunes 14 de septiembre de 2026, como la build 26A428, en el feed de versiones de Apple junto con Xcode 27 y los demás sistemas 27.0. El SDK dentro de Xcode 27 se identifica como 26A425.13
¿Ya salió macOS 27.0.1?
No al 26 de septiembre de 2026. El índice de notas de la versión de macOS de Apple lista “macOS 27 Golden Gate Release Notes” y “macOS 27.2 Golden Gate Beta 2 Release Notes” y nada entre ellas, y el feed de versiones no trae ningún 27.0.1 para ninguna plataforma. Esta publicación llevará una nota fechada cuando salga.17
¿Dónde están las notas de la versión de macOS 27?
En el sitio de documentación para desarrolladores de Apple, bajo macOS Release Notes, en una sola página para la versión, titulada “macOS 27 Golden Gate Release Notes”, con 86 áreas, General primero y luego de Accessory Access a XQuartz. Las notas de la beta de 27.2 son una página aparte y mucho más corta.24
¿Qué queda obsoleto en macOS 27?
Trece entradas bajo encabezados de Deprecations: PHAssetResource.originalFilename, FileDocument, el renombrado de calendar.deleteEvents, el framework DVDPlayback, Encrypted HFS+, el acceso directo a la base de datos de TCC, el mandato del ciclo de vida por escenas de Catalyst, tres entradas de Rosetta, AirPort Utility en instalaciones limpias, una nota de beta de USDKit y una nota de idioma de Weather Highlights. Solo las cuatro primeras son API. originalFilename gana una advertencia solo con un deployment target de 27.0, FileDocument sigue en silencio, deleteEvents no compila y DVDPlayback advierte por debajo de un mínimo de 27.0 y falla con él.23
¿Tengo que recompilar mi app para macOS 27?
No, y es la recompilación la que cambia parte del comportamiento. Las entradas de enlace con 27 solo se activan cuando generas el archivo con el SDK 27; los cambios de gestos, launchd, TCC, contenedores, TLS y Rosetta se aplican a todo binario en una máquina con 27, recompiles o no, y una app enlazada con macOS 26.0 o posterior ya pierde allí sus imágenes de símbolo en los menús.2
¿DVDPlayback desapareció del SDK?
No del SDK 27.0 en disco: la carpeta del framework, su .tbd, los encabezados y el module map están todos presentes en MacOSX27.0.sdk de Xcode 27. Sus funciones están marcadas como no disponibles con un deployment target de 27.0 y obsoletas desde 10.15 por debajo de eso, así que un proyecto con un mínimo de 27.0 no puede compilar contra él, que es lo que dice la nota; un proyecto con un mínimo más bajo todavía puede, con una advertencia.3
¿Qué cambió para Mac Catalyst en macOS 27?
Se aplica el mandato del ciclo de vida por escenas, UIScene.extendStateRestoration y completeStateRestoration están disponibles al enlazar con el SDK de macCatalyst 27, las apps de Catalyst ya no crean una ventana cuando cambias a ellas sin ninguna abierta salvo que se activen desde el Dock o Spotlight, UIStepper funciona en el idioma de Mac, y los botones de la barra de herramientas de la barra lateral que faltaban figuran como corregidos. Las notas de la beta de Xcode 27.2 agregan una advertencia: el SDK de macOS de esa versión “incorrectly report[s] 27.1 as a valid deployment target,” (informa por error 27.1 como un deployment target válido) y las builds de Catalyst con 27.1 o 27.2 “may be unable to use newly introduced API.” (quizá no puedan usar las API recién introducidas).25
Fuentes
-
Apple, Releases, feed RSS descargado el 26 de septiembre de 2026: “macOS 27.0 (26A428)” con fecha del lunes 14 de septiembre de 2026 junto a “Xcode 27 (27A266a)”; “macOS 27.2 beta 2 (26B5091g)” con fecha del lunes 21 de septiembre de 2026; ningún ítem de macOS 27.0.1 para ninguna plataforma hasta el ítem más reciente, “TestFlight 4.4.0”, del 24 de septiembre. ↩↩↩↩↩↩↩
-
Apple, macOS 27 Golden Gate Release Notes, descargadas el 26 de septiembre de 2026. Entradas citadas por número de radar: AppKit 170477566, 177605020, 180962967, 6938919, 173975472, 176048351, 176395420, 179374305, 179936632, 160867808, 162577742, 163365571; App Intents 176751155, 181800016, 177198033; NSGestureRecognizer 173551081, 175705302, 176396492; NSApplication 168692527; SwiftUI 105893279, 158160386, 158441552, 158441261, 177458781, 167448274, 165913417, 175594929, 170678002, 174628712, 180300890, 180301399, 180302015, 180302075, 178776840, 86580365, 151015350, 173362083, 173990195, 68559433, 78212597, 177185166, 179388848, 170480710, 180301165; UIKit 141837548, 161843040, 170479084; Mac Catalyst 69906818, 57819435, 176879915; Launch Daemons and Agents 166415497; TCC 90775556; System Integrity Protection 161835690, 178668601; Privacy & Security Settings 184660124; Network Security 176055825; Rosetta 168097174, 163213094, 171187112, 176042635; Core AI 174796039, 179282606; Apple Unified Logging System 160567675; PhotoKit 175412725; CoreStorage 175892420; DVDPlayback 179136240; AirPort Utility 158248382; USDKit 177417812; Weather Highlights 164408676; StoreKit 141012819, 156749517, 160501742, 167808780; StoreKit Testing in Xcode 184155259, 184255116; System 160612181, 177911316; Disk Images 177868758; Virtualization 64203273; Gatekeeper 123097648; Game Controller 168071382; VideoToolbox 177635243, 179040806; Metal 172520325, 177318505; Foundation 161588649; Hardware Security 152103975; Swift Charts 174168981; Core Spotlight 183770678; Safari 183044008; Shortcuts 166068090, 168315587; Startup Disk 166640903; Siri 171728298, 176299524, 176812955, 177116121, 177376984, 177984074. Los recuentos (86 áreas; 68 funciones nuevas, 173 problemas resueltos, 18 problemas conocidos, 13 obsolescencias) son el conteo del autor de los ítems de lista bajo cada encabezado. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Inspección del autor del SDK de macOS 27.0 dentro de Xcode 27 (27A266a) en una Mac con macOS 26.6.2, el 26 de septiembre de 2026:
MacOSX27.0.sdk/System/Library/CoreServices/SystemVersion.plistinformaProductBuildVersion26A425 yProductVersion27.0;PHAssetResource.hllevaAPI_DEPRECATED("Use filename instead", ios(9, 27), macos(10.15, 27), tvos(10, 27), visionos(1, 27))enoriginalFilename; la interfaz de SwiftUIarm64e-apple-macoslleva@available(macOS, introduced: 11.0, deprecated: 100000.0, message: "Conform your type to Document instead.")enFileDocumentydeprecated: 100000.0con el mensaje detextFieldStyle(.bordered)enroundedBorder; la interfazAppIntentsde macOS contienedeleteEventuna vez ydeleteEventscero veces;DVDPlayback.frameworkcontieneDVDPlayback.tbd(223 símbolos_DVDdistintos; targetsx86_64-macos,arm64e-macos,arm64e.x1-macos),Headers/DVDPlayback.hyModules/module.modulemap;swiftc -typecheckde un archivo que importaDVDPlaybacky llama aDVDInitialize()produjo “warning: ‘DVDInitialize()’ was deprecated in macOS 10.15: No longer supported” con-target arm64-apple-macos26.0y “error: ‘DVDInitialize()’ is unavailable in macOS: No longer supported” con-target arm64-apple-macos27.0;swiftc -typecheckde un archivo que leeoriginalFilename, conforma aFileDocumenty aplica.roundedBorderno produjo diagnósticos con-target arm64-apple-macos26.0y produjo una advertencia, “‘originalFilename’ was deprecated in macOS 27: Use filename instead”, con-target arm64-apple-macos27.0;NSRefreshController.hy la interfaz deNSTextSelectionManagersonAPI_AVAILABLE(macos(27.0));NSToolbarItemGroup.hdeclaraNSToolbarItemGroupRoleconNS_SWIFT_NAME(NSToolbarItemGroup.Role) API_AVAILABLE(macos(27.0), ios(27.0))y la propiedadroleAPI_AVAILABLE(macos(27.0)), igual queNSSegmentedControl.h;NSMenuItem.hdeclarapreferredImageVisibilityAPI_AVAILABLE(macos(27.0));NSGestureRecognizer.hdeclaracancellableByScrollGestureAPI_AVAILABLE(macos(27.0));NSApplication.hdeclaraNSApplicationPresentationDisableScreenCornerInteractionscomoAPI_AVAILABLE(macos(27.0))con el valor en el bit 15 de la máscara; las carpetas de los frameworksDiskImageKit,NowPlayingyAccessoryAccessestán presentes; la interfaz deSystemdeclarapublic struct Stat;swiftc -typecheckde un archivo cuyo closure deChartbifurca conifentre unBarMarky unLineMarkno produjo diagnósticos ni con-target arm64-apple-macos26.0ni con-target arm64-apple-macos27.0; la interfaz de StoreKit contieneassignedyBundledSubscriptiony declarapublic static var assignmentRevocationenTransaction.RevocationTypecon el valor rawASSIGNMENT_REVOKE, mientras que ningún archivo del SDK contiene elassignmentRevokedde la nota; ese caso está declarado@available(iOS 26.4, macOS 26.4, tvOS 26.4, watchOS 26.4, visionOS 26.4, *)con@backDeployed(before: iOS 27.0, macOS 27.0, tvOS 27.0, watchOS 27.0, visionOS 27.0);ReferenceFileDocumentlleva@available(macOS, introduced: 11.0, deprecated: 100000.0, message: "Use Document protocol instead.");NSScrollView.hdeclararefreshControllerAPI_AVAILABLE(macos(27.0)); el comentario deNSMenuItem.hsobreimagedice “in macOS 27 and later, AppKit determines the visibility of menu item images, and will typically hide images”. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Apple, macOS 27.2 Golden Gate Beta 2 Release Notes, descargadas el 26 de septiembre de 2026: General 186939138, AppKit 186955507, Notifications 187312007, Shortcuts 187499433, StoreKit Testing in Xcode 183933307, 184155259, 184255116, 186018916, citadas. ↩↩↩
-
Apple, Xcode 27.2 Beta Release Notes, descargadas el 26 de septiembre de 2026, SDK, Known Issues (187160501), citadas. ↩
-
Apple, notas de la versión de App Store Connect, descargadas el 26 de septiembre de 2026, entrada del 14 de septiembre de 2026, citada completa en la tabla. ↩
-
Apple, macOS Release Notes, índice descargado el 26 de septiembre de 2026: las entradas 27 son “macOS 27 Golden Gate Release Notes” y “macOS 27.2 Golden Gate Beta 2 Release Notes”. ↩↩↩