{"code":"var Component=(()=>{var u=Object.create;var r=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var v=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),f=(n,e)=>{for(var o in e)r(n,o,{get:e[o],enumerable:!0})},s=(n,e,o,l)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let i of h(e))!b.call(n,i)&&i!==o&&r(n,i,{get:()=>e[i],enumerable:!(l=m(e,i))||l.enumerable});return n};var y=(n,e,o)=>(o=n!=null?u(g(n)):{},s(e||!n||!n.__esModule?r(o,\"default\",{value:n,enumerable:!0}):o,n)),S=n=>s(r({},\"__esModule\",{value:!0}),n);var t=v((O,d)=>{d.exports=_jsx_runtime});var q={};f(q,{default:()=>p});var a=y(t());function c(n){let e={a:\"a\",blockquote:\"blockquote\",code:\"code\",em:\"em\",h2:\"h2\",h3:\"h3\",img:\"img\",li:\"li\",ol:\"ol\",p:\"p\",pre:\"pre\",span:\"span\",strong:\"strong\",table:\"table\",tbody:\"tbody\",td:\"td\",th:\"th\",thead:\"thead\",tr:\"tr\",ul:\"ul\",...n.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"Correcci\\xF3n del 19 de octubre de 2026:\"}),\" La afirmaci\\xF3n anterior de que el soporte para macOS 11 y versiones anteriores terminar\\xEDa en la Mac App Store en abril de 2027 no estaba respaldada. El anuncio de Apple establece requisitos de SDK para otras plataformas, pero no fija ese plazo para macOS. Se han corregido los pasajes afectados.\"]}),`\n`,(0,a.jsx)(e.p,{children:\"Abre un proyecto de app para Mac que ha compilado sin problemas durante a\\xF1os, cambia a la beta de Xcode 27, pulsa build y se detiene:\"}),`\n`,(0,a.jsx)(a.Fragment,{children:(0,a.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,a.jsx)(e.code,{children:(0,a.jsx)(e.span,{className:\"line\",children:(0,a.jsx)(e.span,{children:\"The macOS deployment target 'MACOSX_DEPLOYMENT_TARGET' is set to 10.13, but the range of supported deployment target versions is 12.0 to 27.0.99.\"})})})})}),`\n`,(0,a.jsx)(e.p,{children:\"En Xcode 26 esa frase era una advertencia amarilla que pod\\xEDas ignorar y seguir adelante. En Xcode 27 es un error rojo y la compilaci\\xF3n no contin\\xFAa. Ese es todo el cambio, y es m\\xE1s peque\\xF1o y m\\xE1s grande de lo que parece: m\\xE1s peque\\xF1o porque la documentaci\\xF3n de Apple ha declarado durante a\\xF1os un m\\xEDnimo de macOS 11 e iOS 15; m\\xE1s grande porque Xcode nunca lo hizo cumplir, y una gran cantidad de apps en producci\\xF3n dependen silenciosamente de eso.\"}),`\n`,(0,a.jsx)(e.p,{children:\"Este art\\xEDculo expone lo que Xcode 27 realmente exige (seg\\xFAn las propias tablas y notas de la versi\\xF3n de Apple), lo que Xcode 26 realmente permit\\xEDa (seg\\xFAn el SDK en nuestro propio disco), a qui\\xE9n afecta, el ajuste no documentado que convierte el error de nuevo en advertencia, y c\\xF3mo se distinguen los deployment targets compatibles de los requisitos de SDK de la App Store seg\\xFAn la plataforma.\"}),`\n`,(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:\"Error de compilaci\\xF3n por deployment target en Xcode 27\",src:\"/images/blog/xcode-27-minimum-deployment-target-macos-12-ios-15-build-error-fix-2026/hero.webp\",width:\"1024\",height:\"541\"})}),`\n`,(0,a.jsx)(e.h2,{id:\"puntos-clave\",children:\"Puntos clave\"}),`\n`,(0,a.jsxs)(e.ul,{children:[`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Los deployment targets admitidos por Xcode 27 son macOS 12\\u201327, iOS/iPadOS/tvOS 15\\u201327, watchOS 9\\u201327, visionOS 1\\u201327, DriverKit 21\\u201327\"}),\", seg\\xFAn la p\\xE1gina de soporte de Xcode de Apple para la beta 6. Por debajo de esos valores, la compilaci\\xF3n falla.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Xcode 26 documentaba macOS 11 como su m\\xEDnimo, pero en realidad aceptaba 10.13.\"}),\" Revisamos el archivo de configuraci\\xF3n del SDK de macOS 26.0: 34 deployment targets v\\xE1lidos, empezando en 10.13. Xcode 27 cierra esa brecha al convertir el rango documentado en el rango exigido.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"El m\\xEDnimo de macOS cambi\\xF3 durante la beta.\"}),' En junio, la nota de Apple dec\\xEDa que el back-deployment Universal era \"hasta macOS 27 inclusive\"; los desarrolladores lo interpretaron como Big Sur. La nota de la beta 6 dice \"macOS 12 y posteriores\". Planifica para Monterey, no para Big Sur.']}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Existe una v\\xEDa de escape no documentada\"}),\", \",(0,a.jsx)(e.code,{children:\"__DIAGNOSE_INVALID_DEPLOYMENT_TARGET_AS_ERROR = NO\"}),\", que seg\\xFAn se informa convierte el error de nuevo en advertencia. No tiene soporte oficial, puede desaparecer, y no cambia el hecho de que Apple no est\\xE1 probando esos targets.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Los requisitos de SDK de la App Store dependen de la plataforma.\"}),\" Apple ha anunciado para abril de 2027 el uso de los SDK de iOS/iPadOS 27, tvOS 27, visionOS 27 y watchOS 27 o posteriores. Ese anuncio no establece una fecha l\\xEDmite para dar soporte a macOS 11 o versiones anteriores en la Mac App Store.\"]}),`\n`]}),`\n`,(0,a.jsx)(e.h2,{id:\"las-cifras-oficialmente\",children:\"Las cifras, oficialmente\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"La \",(0,a.jsx)(e.a,{href:\"https://developer.apple.com/support/xcode/\",children:\"p\\xE1gina de soporte de Xcode\"}),\" de Apple publica una tabla de para qu\\xE9 puede compilar cada versi\\xF3n de Xcode. Esta es la comparaci\\xF3n que importa:\"]}),`\n`,(0,a.jsxs)(e.table,{children:[(0,a.jsx)(e.thead,{children:(0,a.jsxs)(e.tr,{children:[(0,a.jsx)(e.th,{children:\"Plataforma\"}),(0,a.jsx)(e.th,{children:\"Xcode 26.6\"}),(0,a.jsx)(e.th,{children:\"Xcode 27 beta 6\"})]})}),(0,a.jsxs)(e.tbody,{children:[(0,a.jsxs)(e.tr,{children:[(0,a.jsx)(e.td,{children:\"macOS\"}),(0,a.jsx)(e.td,{children:\"11 \\u2013 26.5\"}),(0,a.jsx)(e.td,{children:(0,a.jsx)(e.strong,{children:\"12 \\u2013 27\"})})]}),(0,a.jsxs)(e.tr,{children:[(0,a.jsx)(e.td,{children:\"iOS / iPadOS\"}),(0,a.jsx)(e.td,{children:\"15 \\u2013 26.5\"}),(0,a.jsx)(e.td,{children:\"15 \\u2013 27\"})]}),(0,a.jsxs)(e.tr,{children:[(0,a.jsx)(e.td,{children:\"tvOS\"}),(0,a.jsx)(e.td,{children:\"15 \\u2013 26.5\"}),(0,a.jsx)(e.td,{children:\"15 \\u2013 27\"})]}),(0,a.jsxs)(e.tr,{children:[(0,a.jsx)(e.td,{children:\"watchOS\"}),(0,a.jsx)(e.td,{children:\"8 \\u2013 26.5\"}),(0,a.jsx)(e.td,{children:(0,a.jsx)(e.strong,{children:\"9 \\u2013 27\"})})]}),(0,a.jsxs)(e.tr,{children:[(0,a.jsx)(e.td,{children:\"visionOS\"}),(0,a.jsx)(e.td,{children:\"1 \\u2013 26.5\"}),(0,a.jsx)(e.td,{children:\"1 \\u2013 27\"})]}),(0,a.jsxs)(e.tr,{children:[(0,a.jsx)(e.td,{children:\"DriverKit\"}),(0,a.jsx)(e.td,{children:\"20 \\u2013 25.5\"}),(0,a.jsx)(e.td,{children:(0,a.jsx)(e.strong,{children:\"21 \\u2013 27\"})})]})]})]}),`\n`,(0,a.jsx)(e.p,{children:'L\\xE9ela con atenci\\xF3n, porque el titular \"Xcode 27 sube el m\\xEDnimo\" solo es cierto a medias. Para iOS, el m\\xEDnimo documentado ha sido 15 durante todo Xcode 26 y se mantiene en 15 en Xcode 27. Para macOS sube una versi\\xF3n, de 11 a 12. Para watchOS, de 8 a 9. Sobre el papel, es un endurecimiento modesto.'}),`\n`,(0,a.jsx)(e.p,{children:\"Lo que no est\\xE1 sobre el papel es que las cifras de Xcode 26 nunca se hicieron cumplir.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"lo-que-xcode-26-realmente-permit\\xEDa\",children:\"Lo que Xcode 26 realmente permit\\xEDa\"}),`\n`,(0,a.jsx)(e.p,{children:\"Cada SDK dentro de Xcode incluye un archivo de configuraci\\xF3n que declara qu\\xE9 deployment targets considera v\\xE1lidos. En nuestra m\\xE1quina, con Xcode 26.0.1 (17A400) instalado, ese archivo est\\xE1 en:\"}),`\n`,(0,a.jsx)(a.Fragment,{children:(0,a.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,a.jsx)(e.code,{children:(0,a.jsx)(e.span,{className:\"line\",children:(0,a.jsx)(e.span,{children:\"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.json\"})})})})}),`\n`,(0,a.jsx)(e.p,{children:\"Leerlo requiere un solo comando:\"}),`\n`,(0,a.jsx)(a.Fragment,{children:(0,a.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\" fill=\"currentColor\" /></svg>',children:(0,a.jsxs)(e.code,{children:[(0,a.jsxs)(e.span,{className:\"line\",children:[(0,a.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"python3\"}),(0,a.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -c\"}),(0,a.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" '\"})]}),`\n`,(0,a.jsx)(e.span,{className:\"line\",children:(0,a.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"import json\"})}),`\n`,(0,a.jsx)(e.span,{className:\"line\",children:(0,a.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'d = json.load(open(\"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.json\"))'})}),`\n`,(0,a.jsx)(e.span,{className:\"line\",children:(0,a.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'t = d[\"SupportedTargets\"][\"macosx\"]'})}),`\n`,(0,a.jsx)(e.span,{className:\"line\",children:(0,a.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'print(t[\"MinimumDeploymentTarget\"], \"->\", t[\"MaximumDeploymentTarget\"])'})}),`\n`,(0,a.jsx)(e.span,{className:\"line\",children:(0,a.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'print(len(t[\"ValidDeploymentTargets\"]), \"valid:\", t[\"ValidDeploymentTargets\"][:6], \"...\")'})}),`\n`,(0,a.jsx)(e.span,{className:\"line\",children:(0,a.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"'\"})})]})})}),`\n`,(0,a.jsx)(e.p,{children:\"Salida en Xcode 26.0.1:\"}),`\n`,(0,a.jsx)(a.Fragment,{children:(0,a.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,a.jsxs)(e.code,{children:[(0,a.jsx)(e.span,{className:\"line\",children:(0,a.jsx)(e.span,{children:\"10.13 -> 26.0.99\"})}),`\n`,(0,a.jsx)(e.span,{className:\"line\",children:(0,a.jsx)(e.span,{children:\"34 valid: ['10.13', '10.14', '10.15', '11.0', '11.1', '11.2'] ...\"})})]})})}),`\n`,(0,a.jsxs)(e.p,{children:['As\\xED que, mientras la tabla de Apple dec\\xEDa \"macOS 11\", el SDK dec\\xEDa \"10.13\", y Xcode te dejaba escribir 10.13 en el campo del deployment target, te advert\\xEDa, y aun as\\xED compilaba. Michael Tsai ',(0,a.jsx)(e.a,{href:\"https://mjtsai.com/blog/2026/09/01/ending-the-golden-era-for-backward-compatible-apps/\",children:\"describe la pr\\xE1ctica\"}),' sin rodeos: los desarrolladores \"han podido introducir targets antiguos manualmente\", y mucho software independiente para Mac hizo exactamente eso para mantener a los usuarios de High Sierra, Mojave y Catalina en la versi\\xF3n actual.']}),`\n`,(0,a.jsxs)(e.p,{children:[\"Si tienes instalada la beta de Xcode 27, ejecuta el mismo comando contra su SDK (sustituyendo \",(0,a.jsx)(e.code,{children:\"Xcode-beta.app\"}),\") y ver\\xE1s el nuevo m\\xEDnimo. Nosotros no tenemos la beta en esta m\\xE1quina, as\\xED que nos basamos en la tabla de Apple y en los informes de los desarrolladores para la cifra de 12.0, en lugar de leerla nosotros mismos del archivo.\"]}),`\n`,(0,a.jsx)(e.h2,{id:\"de-advertencia-a-error\",children:\"De advertencia a error\"}),`\n`,(0,a.jsx)(e.p,{children:'El diagn\\xF3stico en s\\xED no es nuevo. El sistema de compilaci\\xF3n de Apple lleva a\\xF1os emitiendo \"the range of supported deployment target versions is X to Y\" como advertencia. Lo que cambia en Xcode 27 es su severidad.'}),`\n`,(0,a.jsxs)(e.p,{children:[\"Un \",(0,a.jsx)(e.a,{href:\"https://bleepingswift.com/blog/deployment-target-supported-range-xcode-27\",children:\"art\\xEDculo en bleepingswift.com\"}),\" cita la forma que toma en iOS tal como aparece en Xcode 27:\"]}),`\n`,(0,a.jsxs)(e.blockquote,{children:[`\n`,(0,a.jsx)(e.p,{children:\"The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to xx.x, but the range of supported deployment targets versions is 15.0 to 27.0.x\"}),`\n`]}),`\n`,(0,a.jsxs)(e.p,{children:[\"La forma para macOS es el mismo mensaje con \",(0,a.jsx)(e.code,{children:\"MACOSX_DEPLOYMENT_TARGET\"}),\" y un rango de 12.0 a 27.0.99. Se dispara por cada target, as\\xED que una app con una extensi\\xF3n, un widget y un test bundle que hereden un target antiguo lo mostrar\\xE1 cuatro veces, y arreglar solo la app principal no despeja la compilaci\\xF3n.\"]}),`\n`,(0,a.jsxs)(e.p,{children:[\"Los mantenedores de Vienna RSS \",(0,a.jsx)(e.a,{href:\"https://github.com/ViennaRSS/vienna-rss/issues/2140\",children:\"se toparon con esto el 10 de junio\"}),`, dos d\\xEDas despu\\xE9s de que saliera la beta: su target era 10.13, compilaba sin advertencias ni errores en Xcode 26, y en Xcode 27 \"it's a hard requirement (build error)\". Su siguiente preocupaci\\xF3n es la que comparte todo desarrollador de Mac en esta situaci\\xF3n: no se espera que Xcode 26 tenga soporte en macOS 27, as\\xED que la soluci\\xF3n de \"quedarse con el Xcode antiguo\" tiene fecha de caducidad.`]}),`\n`,(0,a.jsx)(e.h2,{id:\"qu\\xE9-cambi\\xF3-entre-junio-y-la-beta-6\",children:\"Qu\\xE9 cambi\\xF3 entre junio y la beta 6\"}),`\n`,(0,a.jsx)(e.p,{children:\"El m\\xEDnimo de macOS no fue estable durante el per\\xEDodo de beta, y vale la pena saber qu\\xE9 versi\\xF3n de la historia has le\\xEDdo.\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"En junio, la nota de la versi\\xF3n sobre Intel dec\\xEDa, seg\\xFAn se cita en los \",(0,a.jsx)(e.a,{href:\"https://developer.apple.com/forums/thread/829619\",children:\"Apple Developer Forums\"}),\":\"]}),`\n`,(0,a.jsxs)(e.blockquote,{children:[`\n`,(0,a.jsx)(e.p,{children:\"Xcode 27 will only install and run on Apple silicon Macs. The macOS SDK is still Universal for back deployment up to and including macOS 27. Intel development is still possible with macOS versions that support Rosetta like macOS 27. (162138432)\"}),`\n`]}),`\n`,(0,a.jsxs)(e.p,{children:[\"Eso no dice nada sobre un m\\xEDnimo. El \",(0,a.jsx)(e.a,{href:\"https://mjtsai.com/blog/2026/06/09/xcode-27-announced/\",children:\"resumen del primer d\\xEDa\"}),' de Tsai interpret\\xF3 la situaci\\xF3n como \"the minimum you can target is now Big Sur (or Monterey for Apple Silicon Macs)\", y el issue de ViennaRSS dec\\xEDa macOS 12 sin rodeos. Las ',(0,a.jsx)(e.a,{href:\"https://developer.apple.com/documentation/xcode-release-notes/xcode-27-release-notes\",children:\"notas actuales de la beta 6\"}),\" lo resuelven:\"]}),`\n`,(0,a.jsxs)(e.blockquote,{children:[`\n`,(0,a.jsx)(e.p,{children:\"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. (162138432)\"}),`\n`]}),`\n`,(0,a.jsx)(e.p,{children:'El mismo n\\xFAmero de issue, redactado de nuevo para nombrar macOS 12. La actualizaci\\xF3n de septiembre de Tsai se\\xF1ala lo mismo: \"Xcode 27 Beta 6 documents macOS 12.0 as the minimum deployment target now\". Si tu plan de migraci\\xF3n estaba construido sobre Big Sur, rev\\xEDsalo para Monterey.'}),`\n`,(0,a.jsx)(e.h2,{id:\"a-qui\\xE9n-afecta-esto-realmente\",children:\"A qui\\xE9n afecta esto realmente\"}),`\n`,(0,a.jsx)(e.p,{children:\"Tres grupos, en orden decreciente de dolor.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"apps-de-mac-que-a\\xFAn-dan-soporte-desde-high-sierra-hasta-big-sur\",children:\"Apps de Mac que a\\xFAn dan soporte desde High Sierra hasta Big Sur\"}),`\n`,(0,a.jsx)(e.p,{children:\"Este es el grupo del que trata la publicaci\\xF3n de Tsai, y el que menos simpat\\xEDa recibe de la plataforma. Matthias Gansrigler-Hrad, de Eternal Storms, lo expres\\xF3 directamente en Mastodon:\"}),`\n`,(0,a.jsxs)(e.blockquote,{children:[`\n`,(0,a.jsx)(e.p,{children:\"I don't appreciate being forced by Xcode 27 to drop support for macOS 10.13-11.0. It's my decision\"}),`\n`]}),`\n`,(0,a.jsx)(e.p,{children:\"Para estos desarrolladores, Xcode 27 es una elecci\\xF3n forzada: subir el m\\xEDnimo y dejar fuera a los usuarios de sistemas de 2017\\u20132020, o quedarse en Xcode 26 y renunciar al SDK de macOS 27 y a todo lo que depende de \\xE9l.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"apps-de-ios-y-sobre-todo-librer\\xEDas-de-ios-por-debajo-de-15\",children:\"Apps de iOS y, sobre todo, librer\\xEDas de iOS por debajo de 15\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"El m\\xEDnimo de Apple para iOS ha sido 15 desde Xcode 26, as\\xED que una app que ya est\\xE9 en 15 no nota nada. Pero el \",(0,a.jsx)(e.em,{children:\"ecosistema\"}),' estaba lleno de librer\\xEDas que declaraban m\\xEDnimos m\\xE1s bajos, y cada una genera ahora el diagn\\xF3stico en todos los proyectos que la importan. Los rastreadores de issues de GitHub se llenaron en la primera semana de junio con solicitudes casi id\\xE9nticas tituladas \"Support Xcode 27: raise minimum iOS deployment target to 15\", contra el ',(0,a.jsx)(e.a,{href:\"https://github.com/facebook/facebook-ios-sdk/issues/3828\",children:\"Facebook iOS SDK\"}),\", que declaraba \",(0,a.jsx)(e.code,{children:\".iOS(.v12)\"}),\" en su \",(0,a.jsx)(e.code,{children:\"Package.swift\"}),\", contra \",(0,a.jsx)(e.a,{href:\"https://github.com/adjust/ios_sdk/issues/799\",children:\"Adjust\"}),\", DataDog, SDWebImage y otros. Si dependes de un paquete cuyo mantenedor no ha respondido, est\\xE1s bloqueado hasta que lo haga o hasta que hagas un fork.\"]}),`\n`,(0,a.jsx)(e.h3,{id:\"cualquiera-con-un-target-antiguo-escondido-en-una-dependencia\",children:\"Cualquiera con un target antiguo escondido en una dependencia\"}),`\n`,(0,a.jsxs)(e.p,{children:['El caso sutil. Tu app apunta a 15. Un paquete Swift transitivo apunta a 13. Xcode 27 compila ese paquete con tu toolchain, ve 13, y hace fallar tu compilaci\\xF3n. No existe una anulaci\\xF3n del lado del consumidor en Swift Package Manager: la conclusi\\xF3n de bleepingswift, que coincide con la nuestra, es que \"packages declaring older minimums in their ',(0,a.jsx)(e.code,{children:\"platforms\"}),' declaration require either upgrading to a newer package version or forking and updating the requirement yourself\".']}),`\n`,(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:\"M\\xEDnimos de deployment target a trav\\xE9s de las versiones de Xcode\",src:\"/images/blog/xcode-27-minimum-deployment-target-macos-12-ios-15-build-error-fix-2026/content-1.webp\",width:\"1024\",height:\"572\"})}),`\n`,(0,a.jsx)(e.h2,{id:\"la-v\\xEDa-de-escape-oculta\",children:\"La v\\xEDa de escape oculta\"}),`\n`,(0,a.jsx)(e.p,{children:\"Existe una, y deber\\xEDas conocerla y tener cuidado con ella.\"}),`\n`,(0,a.jsx)(e.p,{children:'Ighor July, escribiendo el 24 de julio en un texto que Tsai cita, informa que en la beta de Xcode 27 \"a hidden setting changed those errors back into warnings, and the compiler still produced the older targets I tested\". Describe el ajuste como \"undocumented, absent from the normal Xcode interface, and currently being tested only\" en un toolchain beta. Un lector de la publicaci\\xF3n de Tsai, Harald Striepe, lo nombra:'}),`\n`,(0,a.jsx)(a.Fragment,{children:(0,a.jsx)(e.pre,{className:\"shiki shiki-themes github-light github-dark\",style:{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},tabIndex:\"0\",icon:'<svg viewBox=\"0 0 24 24\"><path d=\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\" fill=\"currentColor\" /></svg>',children:(0,a.jsx)(e.code,{children:(0,a.jsx)(e.span,{className:\"line\",children:(0,a.jsx)(e.span,{children:\"__DIAGNOSE_INVALID_DEPLOYMENT_TARGET_AS_ERROR = NO\"})})})})}),`\n`,(0,a.jsxs)(e.p,{children:[\"Es un build setting, as\\xED que va donde van los build settings: un archivo \",(0,a.jsx)(e.code,{children:\".xcconfig\"}),\" asociado a la configuraci\\xF3n, o un ajuste User-Defined a\\xF1adido al final del panel Build Settings del target. Al establecerlo, la comprobaci\\xF3n del deployment target vuelve al comportamiento de Xcode 26.\"]}),`\n`,(0,a.jsx)(e.p,{children:\"Ahora las salvedades, que no son peque\\xF1as.\"}),`\n`,(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"No tiene soporte oficial.\"}),\" Dos guiones bajos iniciales son la convenci\\xF3n de Apple para ajustes internos. Puede ser renombrado o eliminado en cualquier beta, incluida la que llegue justo despu\\xE9s de que empieces a depender de \\xE9l.\"]}),`\n`,(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"Restaura la advertencia, no las pruebas.\"}),\" La valoraci\\xF3n de Tsai sobre todo el cambio merece citarse por completo, porque es el marco honesto:\"]}),`\n`,(0,a.jsxs)(e.blockquote,{children:[`\n`,(0,a.jsx)(e.p,{children:\"I'm frustrated, too, but it's more honest than the recent releases that claimed to support deployment on older macOS versions when Apple clearly hadn't tested that it actually worked.\"}),`\n`]}),`\n`,(0,a.jsx)(e.p,{children:\"Desactivar el error te devuelve a compilar para un target que Apple ya no probaba antes y que ahora expl\\xEDcitamente no soporta. Lo que estuviera roto en Catalina en Xcode 26 seguir\\xE1 roto.\"}),`\n`,(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"El ajuste oculto no demuestra que la App Store acepte el resultado.\"}),\" Comprueba por separado los requisitos de cada plataforma.\"]}),`\n`,(0,a.jsx)(e.h2,{id:\"los-requisitos-de-sdk-de-la-app-store-dependen-de-la-plataforma\",children:\"Los requisitos de SDK de la App Store dependen de la plataforma\"}),`\n`,(0,a.jsx)(e.p,{children:\"Los deployment targets compatibles con una versi\\xF3n de Xcode y los requisitos de SDK para subir apps a la App Store son condiciones diferentes. La versi\\xF3n de SDK necesaria para un env\\xEDo debe comprobarse para la plataforma concreta.\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"El \",(0,a.jsx)(e.strong,{children:\"9 de septiembre de 2026\"}),\", Apple \",(0,a.jsx)(e.a,{href:\"https://developer.apple.com/news/?id=k1mtkt1k\",children:\"anunci\\xF3 los requisitos m\\xEDnimos de SDK para abril de 2027\"}),\": las apps para iOS/iPadOS, tvOS, visionOS y watchOS deber\\xE1n compilarse con el SDK de la versi\\xF3n 27 o posterior de su plataforma. El anuncio no indica un d\\xEDa exacto de abril ni una versi\\xF3n m\\xEDnima del SDK de macOS.\"]}),`\n`,(0,a.jsxs)(e.p,{children:[\"La \",(0,a.jsx)(e.a,{href:\"https://developer.apple.com/news/upcoming-requirements/\",children:\"p\\xE1gina de pr\\xF3ximos requisitos\"}),\" de Apple recoge requisitos de SDK desde el \",(0,a.jsx)(e.strong,{children:\"28 de abril de 2026\"}),\" para esas mismas plataformas. Tambi\\xE9n enumera requisitos independientes para las apps de Mac. Esto no implica que las apps de Mac est\\xE9n exentas de todos los requisitos ni que exista un plazo universal de SDK para todas las plataformas.\"]}),`\n`,(0,a.jsxs)(e.p,{children:[\"Seg\\xFAn los \",(0,a.jsx)(e.a,{href:\"https://developer.apple.com/xcode/system-requirements\",children:\"requisitos del sistema de Xcode\"}),\" de Apple, Xcode 27 admite deployment targets de macOS 12\\u201327 y iOS/iPadOS 15\\u201327. Esos m\\xEDnimos del toolchain son distintos de un requisito de SDK para subir apps. El anuncio de abril de 2027 no establece una fecha l\\xEDmite de la Mac App Store para dar soporte a macOS 11 o versiones anteriores.\"]}),`\n`,(0,a.jsx)(e.p,{children:\"El ajuste no documentado tampoco demuestra que una compilaci\\xF3n que lo utilice vaya a superar la validaci\\xF3n de la App Store. Comprueba los requisitos actuales de la plataforma y de la v\\xEDa de distribuci\\xF3n antes de fijar una fecha de fin de soporte.\"}),`\n`,(0,a.jsx)(e.p,{children:\"Tampoco hay garant\\xEDa de que Xcode 26, las compilaciones para deployment targets antiguos o la distribuci\\xF3n directa con Developer ID sigan siendo v\\xE1lidos indefinidamente. Comprueba el toolchain, los sistemas operativos de desarrollo y de destino, y los requisitos vigentes de firma, notarizaci\\xF3n y distribuci\\xF3n.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"conservar-xcode-26-y-por-qu\\xE9-eso-deja-de-funcionar\",children:\"Conservar Xcode 26, y por qu\\xE9 eso deja de funcionar\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"La mitigaci\\xF3n obvia es instalar ambos. Herramientas como \",(0,a.jsx)(e.code,{children:\"xcodes\"}),\" facilitan mantener Xcode 26.6 junto a la beta de 27 y cambiar entre ellas con \",(0,a.jsx)(e.code,{children:\"xcode-select\"}),\". Para un proyecto con un target de 10.13 que todav\\xEDa necesitas publicar este a\\xF1o, esa es la decisi\\xF3n correcta.\"]}),`\n`,(0,a.jsx)(e.p,{children:`Tiene fecha de caducidad. La tabla de soporte de Apple indica que Xcode 26.6 requiere \"macOS Tahoe 26.2 \\u2013 macOS Tahoe 26.x\". Nada dice que funcione en macOS 27, y la lectura de Tsai es que \"using old versions of Xcode isn't a great solution because they aren't supported on Golden Gate\". Puede que arranque; Apple no lo arreglar\\xE1 si no lo hace. Y a\\xF1ade un costo m\\xE1s sutil:`}),`\n`,(0,a.jsxs)(e.blockquote,{children:[`\n`,(0,a.jsx)(e.p,{children:\"Swift also makes it more difficult to call newer APIs when using an older SDK.\"}),`\n`]}),`\n`,(0,a.jsx)(e.p,{children:\"Quedarse en Xcode 26 significa quedarse en el SDK de macOS 26, lo que implica que las API de macOS 27 solo son accesibles mediante dynamic lookup, o no lo son en absoluto. Para una app en modo mantenimiento, est\\xE1 bien. Para cualquier cosa que est\\xE9s desarrollando activamente, es un estrangulamiento lento.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"xcode-27-en-s\\xED-mismo-es-exclusivo-de-apple-silicon\",children:\"Xcode 27 en s\\xED mismo es exclusivo de Apple silicon\"}),`\n`,(0,a.jsx)(e.p,{children:\"Este es un cambio independiente que llega en la misma versi\\xF3n y se enreda con la historia del deployment target, as\\xED que conviene dejar claro cu\\xE1l es cu\\xE1l.\"}),`\n`,(0,a.jsxs)(e.p,{children:['Las notas de la versi\\xF3n son inequ\\xEDvocas: \"Xcode 27 will only install and run on Apple silicon Macs\". El binario es solo arm64, como ',(0,a.jsx)(e.a,{href:\"https://developer.apple.com/forums/thread/829619\",children:\"confirm\\xF3 en los foros\"}),' quien posee un MacBook Pro con Intel, despu\\xE9s de que la l\\xEDnea \"requires macOS Tahoe 26.4 or later\" de las notas le llevara a esperar lo contrario: Tahoe funciona en un pu\\xF1ado de Macs Intel, Xcode 27 no.']}),`\n`,(0,a.jsx)(e.p,{children:\"El SDK sigue siendo Universal. Puedes compilar slices x86_64 y binarios Universal desde Xcode 27; simplemente tienes que hacerlo en Apple silicon. Es un requisito de hardware para el desarrollador, no una restricci\\xF3n de distribuci\\xF3n sobre la app.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"el-otro-cambio-relacionado-con-intel-universal-deja-de-ser-el-valor-por-defecto-en-270\",children:\"El otro cambio relacionado con Intel: Universal deja de ser el valor por defecto en 27.0\"}),`\n`,(0,a.jsx)(e.p,{children:'Un elemento m\\xE1s relacionado con Intel en las notas de la beta 6, archivado bajo \"Intel Deprecation\", que la mayor\\xEDa de la cobertura pas\\xF3 por alto:'}),`\n`,(0,a.jsxs)(e.blockquote,{children:[`\n`,(0,a.jsxs)(e.p,{children:[\"Build targets with a min deployment target set to macOS 27.0 or DriverKit 27.0 will not build Universal by default. The \",(0,a.jsx)(e.code,{children:\"ARCHS_STANDARD\"}),\" build setting will no longer include x86_64 when \",(0,a.jsx)(e.code,{children:\"MACOSX_DEPLOYMENT_TARGET\"}),\" or \",(0,a.jsx)(e.code,{children:\"DRIVERKIT_DEPLOYMENT_TARGET\"}),\" >= 27.0. The x86_64 architecture can be added to the \",(0,a.jsx)(e.code,{children:\"ARCHS\"}),\" build setting if this is needed. (161837535)\"]}),`\n`]}),`\n`,(0,a.jsxs)(e.p,{children:[\"Esto es l\\xF3gico \\u2014macOS 27 \",(0,a.jsx)(e.a,{href:\"/blog/macos-27-end-of-intel-mac-era-final-compatibility-list-2026\",children:\"no se ejecuta en ning\\xFAn Mac con Intel\"}),\", as\\xED que un target exclusivo de 27.0 no tiene m\\xE1quinas Intel en las que correr\\u2014, pero tiene un efecto secundario. Rosetta sigue presente en macOS 27, y la \",(0,a.jsx)(e.a,{href:\"https://developer.apple.com/news/\",children:\"nota para desarrolladores del 1 de septiembre\"}),\" de Apple reafirm\\xF3 que 27 es su \\xFAltima versi\\xF3n. Una app exclusiva de 27.0 que deja x86_64 fuera por defecto tampoco puede ejecutarse bajo Rosetta en Apple silicon, algo que solo importa si distribu\\xEDas un host de plug-ins exclusivo para Intel o algo similar. A\\xF1ade \",(0,a.jsx)(e.code,{children:\"x86_64\"}),\" a \",(0,a.jsx)(e.code,{children:\"ARCHS\"}),\" expl\\xEDcitamente si lo necesitas.\"]}),`\n`,(0,a.jsx)(e.h2,{id:\"un-tercer-m\\xEDnimo-que-nadie-menciona-libc-en-110\",children:\"Un tercer m\\xEDnimo que nadie menciona: libc++ en 11.0\"}),`\n`,(0,a.jsx)(e.p,{children:'Escondido en la misma lista de Deprecations: \"The minimum supported deployment target on macOS for the C++ standard library has been increased to 11.0\". Es un m\\xEDnimo distinto, m\\xE1s bajo que el m\\xEDnimo de 12.0 del sistema de compilaci\\xF3n, y se aplica al runtime de C++ contra el que enlazas, no al deployment target que declaras. En la pr\\xE1ctica solo aparece si has sorteado la comprobaci\\xF3n del sistema de compilaci\\xF3n \\u2014con el ajuste oculto, por ejemplo\\u2014 y sigues apuntando a 10.15 o anterior con c\\xF3digo C++. Entonces libc++ es lo siguiente que te detiene.'}),`\n`,(0,a.jsx)(e.h2,{id:\"c\\xF3mo-arreglarlo-dependencias\",children:\"C\\xF3mo arreglarlo: dependencias\"}),`\n`,(0,a.jsx)(e.p,{children:\"Para tus propios targets, el arreglo es un n\\xFAmero en un campo de texto. Para las dependencias:\"}),`\n`,(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"CocoaPods.\"}),\" A\\xF1ade un hook \",(0,a.jsx)(e.code,{children:\"post_install\"}),\" que reescriba el deployment target de cada pod target al m\\xEDnimo, luego ejecuta \",(0,a.jsx)(e.code,{children:\"pod install\"}),\" y limpia la carpeta de compilaci\\xF3n. La versi\\xF3n del hook de bleepingswift tiene la forma est\\xE1ndar; lo importante es que se aplique a \",(0,a.jsx)(e.em,{children:\"todos\"}),\" los pod targets, no solo a los que se quejan hoy.\"]}),`\n`,(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"Swift Package Manager.\"}),\" No existe una anulaci\\xF3n. Tus opciones son: actualizar a una versi\\xF3n del paquete que haya elevado su \",(0,a.jsx)(e.code,{children:\"platforms\"}),\"; abrir o votar el issue; o hacer un fork, editar \",(0,a.jsx)(e.code,{children:\"Package.swift\"}),\", y apuntar tu proyecto al fork hasta que el upstream se ponga al d\\xEDa. Revisa primero el issue tracker: para los SDK principales, alguien present\\xF3 la solicitud en la primera semana de junio y normalmente hay un pull request adjunto.\"]}),`\n`,(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"Frameworks vendorizados y XCFrameworks.\"}),\" Estos llevan su propio m\\xEDnimo en su \",(0,a.jsx)(e.code,{children:\"Info.plist\"}),\" y en sus Mach-O load commands. Xcode 27 no se niega a \",(0,a.jsx)(e.em,{children:\"enlazar\"}),\" un framework binario antiguo, pero el linker advertir\\xE1 sobre el desajuste de versi\\xF3n, y el comportamiento en el target antiguo es exactamente el que se prob\\xF3, es decir, ninguno.\"]}),`\n`,(0,a.jsx)(e.h2,{id:\"qu\\xE9-significa-honesto-aqu\\xED\",children:'Qu\\xE9 significa \"honesto\" aqu\\xED'}),`\n`,(0,a.jsx)(e.p,{children:\"Vale la pena detenerse un momento en el planteamiento de Tsai, porque cambia con qu\\xE9 deber\\xEDas estar enfadado.\"}),`\n`,(0,a.jsx)(e.p,{children:'Xcode 26 no daba soporte a macOS 10.13. Te permit\\xEDa escribir 10.13, y generaba c\\xF3digo, pero Apple no probaba que los frameworks del SDK de la versi\\xF3n 26 se comportaran correctamente en un sistema operativo de 2017. Los desarrolladores que publicaban esas compilaciones estaban haciendo su propio QA contra un SO que Apple hab\\xEDa dejado atr\\xE1s, y en la mayor\\xEDa de los casos funcionaba, porque los frameworks son retrocompatibles por dise\\xF1o. Pero ese \"en la mayor\\xEDa de los casos\" cargaba con mucho peso en esa frase, y cada a\\xF1o la brecha entre el SDK y el target se ampliaba.'}),`\n`,(0,a.jsx)(e.p,{children:\"Xcode 27 convierte el rango documentado en el rango real. Eso es una p\\xE9rdida para los usuarios de Macs antiguos y para los desarrolladores que los atend\\xEDan. No es la p\\xE9rdida de algo que Apple prometiera alguna vez.\"}),`\n`,(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:\"Cronolog\\xEDa del requisito de SDK de la App Store y consecuencias del deployment target\",src:\"/images/blog/xcode-27-minimum-deployment-target-macos-12-ios-15-build-error-fix-2026/content-2.webp\",width:\"1024\",height:\"572\"})}),`\n`,(0,a.jsx)(e.h2,{id:\"el-matiz-regulatorio\",children:\"El matiz regulatorio\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"Un hilo m\\xE1s. El 26 de agosto, Tsai \",(0,a.jsx)(e.a,{href:\"https://mjtsai.com/blog/2026/08/26/cyber-resilience-act/\",children:\"recopil\\xF3 comentarios\"}),\" sobre la Cyber Resilience Act de la UE, cuyas principales obligaciones entran en vigor el 11 de diciembre de 2027 y que exige actualizaciones de seguridad durante al menos cinco a\\xF1os. Un lector identificado como Frederik plante\\xF3 la interacci\\xF3n con la App Store:\"]}),`\n`,(0,a.jsxs)(e.blockquote,{children:[`\n`,(0,a.jsx)(e.p,{children:\"Once you update the minimum supported OS version of your app (which you might be forced to by newer Xcode versions\\u2026 you can no longer provide updates for your older app versions on the App Store.\"}),`\n`]}),`\n`,(0,a.jsx)(e.p,{children:\"La planificaci\\xF3n del mantenimiento depende de las decisiones sobre el deployment target, el toolchain y la v\\xEDa de distribuci\\xF3n. El anuncio de SDK de Apple para abril de 2027 no obliga por s\\xED solo a terminar el soporte de macOS 11 en esa fecha. Comprueba las opciones reales de mantenimiento y actualizaci\\xF3n de tu app y consulta a un profesional jur\\xEDdico cualificado sobre las obligaciones legales.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"lista-de-verificaci\\xF3n-para-la-migraci\\xF3n\",children:\"Lista de verificaci\\xF3n para la migraci\\xF3n\"}),`\n`,(0,a.jsx)(e.p,{children:\"Para una app de Mac con un target antiguo, en orden:\"}),`\n`,(0,a.jsxs)(e.ol,{children:[`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Inventar\\xEDa a tus usuarios reales.\"}),\" Si tus anal\\xEDticas dicen que nadie est\\xE1 por debajo de macOS 12, esto es un cambio de una l\\xEDnea y una nota de la versi\\xF3n. La mayor\\xEDa de las apps est\\xE1n aqu\\xED.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Fija el deployment target en 12.0 (macOS) o 15.0 (iOS) en cada target\"}),\", incluyendo extensiones, helpers y tests. Compila con la beta de Xcode 27 y elimina cada instancia del diagn\\xF3stico.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Audita las dependencias\"}),\" en busca de declaraciones \",(0,a.jsx)(e.code,{children:\"platforms\"}),\" y podspecs por debajo del m\\xEDnimo. Haz fork de lo que sea necesario.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Decide qu\\xE9 hacer con los rezagados.\"}),\" Si necesitas seguir publicando para usuarios de macOS 10.13\\u201311, comprueba los requisitos del toolchain, del entorno de ejecuci\\xF3n y de la v\\xEDa de distribuci\\xF3n. Elige y prueba un plan de soporte viable y comunica la decisi\\xF3n real, sin programar una compilaci\\xF3n final en funci\\xF3n de un plazo no respaldado.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"No env\\xEDes el ajuste oculto a producci\\xF3n\"}),\" a menos que hayas probado t\\xFA mismo el resultado en el SO antiguo y aceptes que el ajuste puede desaparecer en la pr\\xF3xima beta.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsxs)(e.strong,{children:[\"Si apuntas exclusivamente a 27.0, revisa \",(0,a.jsx)(e.code,{children:\"ARCHS\"}),\".\"]}),\" Puede que acabes de descartar x86_64 sin darte cuenta.\"]}),`\n`]}),`\n`,(0,a.jsx)(e.h2,{id:\"soluci\\xF3n-de-problemas-comunes\",children:\"Soluci\\xF3n de problemas comunes\"}),`\n`,(0,a.jsx)(e.h3,{id:\"el-error-persiste-despu\\xE9s-de-subir-el-target-de-la-app\",children:\"El error persiste despu\\xE9s de subir el target de la app\"}),`\n`,(0,a.jsx)(e.p,{children:\"Otro target del proyecto todav\\xEDa tiene el valor antiguo. Selecciona el proyecto (no un target) en el navegador, revisa el deployment target a nivel de proyecto, y luego cada target y cada test bundle. Los widgets y las extensiones de app son los culpables habituales.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"el-error-menciona-un-paquete-del-que-no-dependo-directamente\",children:\"El error menciona un paquete del que no dependo directamente\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"Una dependencia transitiva. Usa \",(0,a.jsx)(e.code,{children:\"swift package show-dependencies\"}),\" (o el package graph de Xcode) para averiguar qui\\xE9n lo trae, y luego actualiza ese paquete intermedio o haz fork del paquete final.\"]}),`\n`,(0,a.jsxs)(e.h3,{id:\"xcodebuild-desde-la-l\\xEDnea-de-comandos-falla-pero-la-interfaz-gr\\xE1fica-de-xcode-compila\",children:[(0,a.jsx)(e.code,{children:\"xcodebuild\"}),\" desde la l\\xEDnea de comandos falla pero la interfaz gr\\xE1fica de Xcode compila\"]}),`\n`,(0,a.jsxs)(e.p,{children:[\"Comprueba qu\\xE9 toolchain est\\xE1 usando la l\\xEDnea de comandos: \",(0,a.jsx)(e.code,{children:\"xcode-select -p\"}),\". Puede que tengas la interfaz gr\\xE1fica en la 26 y la l\\xEDnea de comandos en la 27, o viceversa.\"]}),`\n`,(0,a.jsx)(e.h3,{id:\"activ\\xE9-el-flag-oculto-y-no-cambi\\xF3-nada\",children:\"Activ\\xE9 el flag oculto y no cambi\\xF3 nada\"}),`\n`,(0,a.jsx)(e.p,{children:\"El flag tiene que ser visible para el sistema de compilaci\\xF3n en el nivel donde se ejecuta la comprobaci\\xF3n; un xcconfig a nivel de proyecto es el lugar m\\xE1s seguro. Si solo est\\xE1 fijado en un target, los dem\\xE1s targets seguir\\xE1n dando error. Si sigue sin hacer nada, es posible que la beta que tienes lo haya eliminado.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"mis-runners-de-ci-son-intel\",children:\"Mis runners de CI son Intel\"}),`\n`,(0,a.jsx)(e.p,{children:\"Xcode 27 no se instalar\\xE1 en ellos. Esto es una migraci\\xF3n de hardware, no un problema de configuraci\\xF3n. Los proveedores hospedados migraron a runners con Apple silicon hace tiempo; los Mac mini con Intel autogestionados ya est\\xE1n al final de su vida \\xFAtil para compilaciones con el toolchain actual.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"preguntas-frecuentes\",children:\"Preguntas frecuentes\"}),`\n`,(0,a.jsx)(e.h3,{id:\"xcode-27-sube-el-m\\xEDnimo-de-ios\",children:\"\\xBFXcode 27 sube el m\\xEDnimo de iOS?\"}),`\n`,(0,a.jsx)(e.p,{children:\"No sobre el papel: la tabla de Apple dice iOS 15 desde Xcode 26. Lo que cambia es la exigencia: los targets por debajo de 15 que compilaban con una advertencia en Xcode 26 fallan en Xcode 27.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"cu\\xE1l-es-el-m\\xEDnimo-de-macos-en-xcode-27\",children:\"\\xBFCu\\xE1l es el m\\xEDnimo de macOS en Xcode 27?\"}),`\n`,(0,a.jsx)(e.p,{children:\"macOS 12 Monterey, seg\\xFAn la p\\xE1gina de soporte de Xcode de Apple y las notas de la beta 6. Antes, en el ciclo de la beta, la nota se interpretaba como Big Sur; esa lectura est\\xE1 desactualizada.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"todav\\xEDa-puedo-compilar-apps-universal-intel--apple-silicon\",children:\"\\xBFTodav\\xEDa puedo compilar apps Universal (Intel + Apple silicon)?\"}),`\n`,(0,a.jsx)(e.p,{children:\"S\\xED, desde un Mac con Apple silicon. El SDK de macOS 27 admite el back-deployment Universal hasta macOS 12 y posteriores. El \\xFAnico caso en que x86_64 se excluye por defecto es un target fijado en 27.0 o superior.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"cu\\xE1ndo-tengo-que-pasarme-a-xcode-27\",children:\"\\xBFCu\\xE1ndo tengo que pasarme a Xcode 27?\"}),`\n`,(0,a.jsx)(e.p,{children:\"Depende de la plataforma y de la v\\xEDa de distribuci\\xF3n. Apple ha anunciado para abril de 2027 los SDK de iOS/iPadOS 27, tvOS 27, visionOS 27 y watchOS 27 o posteriores; ese anuncio no establece un plazo para macOS. Comprueba los requisitos actuales de tu env\\xEDo concreto. La distribuci\\xF3n directa tambi\\xE9n exige comprobar el toolchain, los sistemas operativos de desarrollo y de destino, la firma y la notarizaci\\xF3n; Xcode 26 no ofrece una garant\\xEDa indefinida.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"es-seguro-el-ajuste-oculto-para-compilaciones-de-la-app-store\",children:\"\\xBFEs seguro el ajuste oculto para compilaciones de la App Store?\"}),`\n`,(0,a.jsx)(e.p,{children:\"Se desconoce. Nadie ha informado de un env\\xEDo compilado con \\xE9l, y es un flag interno no documentado. Tr\\xE1talo como una herramienta para compilaciones locales y ramas legacy, no para tu pipeline de publicaci\\xF3n.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"conclusi\\xF3n\",children:\"Conclusi\\xF3n\"}),`\n`,(0,a.jsx)(e.p,{children:\"El cambio de deployment target en Xcode 27 es una edici\\xF3n peque\\xF1a con una cola larga. Apple no subi\\xF3 mucho el m\\xEDnimo \\u2014una versi\\xF3n en macOS, ninguna en iOS\\u2014, pero dej\\xF3 de fingir que el m\\xEDnimo era opcional, y una d\\xE9cada de software independiente para Mac se construy\\xF3 sobre esa ficci\\xF3n. El error de compilaci\\xF3n que obtienes hoy es f\\xE1cil de arreglar si tus usuarios est\\xE1n en sistemas modernos, e imposible de arreglar correctamente si no lo est\\xE1n.\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"Averigua cu\\xE1l es tu situaci\\xF3n. Si todav\\xEDa publicas para macOS 11 o anterior, revisa tu base de usuarios y las opciones reales de toolchain, pruebas y distribuci\\xF3n antes de decidir el fin del soporte. El anuncio de Apple para abril de 2027 no fija ese plazo para la Mac App Store. Si tus usuarios ya est\\xE1n en sistemas m\\xE1s recientes, sube el n\\xFAmero, arregla las dependencias, revisa \",(0,a.jsx)(e.code,{children:\"ARCHS\"}),\" si eres exclusivo de 27, y sigue adelante.\"]}),`\n`,(0,a.jsx)(e.p,{children:(0,a.jsxs)(e.em,{children:[\"Lectura relacionada: \",(0,a.jsx)(e.a,{href:\"/blog/rosetta-2-ending-macos-27-intel-app-audit-guide-2026\",children:\"audita tus apps de Intel antes de que termine Rosetta\"}),\", \",(0,a.jsx)(e.a,{href:\"/blog/macos-27-end-of-intel-mac-era-final-compatibility-list-2026\",children:\"el l\\xEDmite de compatibilidad de macOS 27 con Intel\"}),\", \",(0,a.jsx)(e.a,{href:\"/blog/macos-tahoe-developer-setup-npm-python-xcode-fix-guide-2025\",children:\"arreglar una configuraci\\xF3n de desarrollo en macOS Tahoe\"}),\", y \",(0,a.jsx)(e.a,{href:\"/blog/best-mac-developer-tools-2026\",children:\"las mejores herramientas para desarrolladores de Mac este a\\xF1o\"}),\".\"]})})]})}function p(n={}){let{wrapper:e}=n.components||{};return e?(0,a.jsx)(e,{...n,children:(0,a.jsx)(c,{...n})}):c(n)}return S(q);})();\n;return Component;","toc":[{"title":"Puntos clave","url":"#puntos-clave","depth":2},{"title":"Las cifras, oficialmente","url":"#las-cifras-oficialmente","depth":2},{"title":"Lo que Xcode 26 realmente permitía","url":"#lo-que-xcode-26-realmente-permitía","depth":2},{"title":"De advertencia a error","url":"#de-advertencia-a-error","depth":2},{"title":"Qué cambió entre junio y la beta 6","url":"#qué-cambió-entre-junio-y-la-beta-6","depth":2},{"title":"A quién afecta esto realmente","url":"#a-quién-afecta-esto-realmente","depth":2},{"title":"Apps de Mac que aún dan soporte desde High Sierra hasta Big Sur","url":"#apps-de-mac-que-aún-dan-soporte-desde-high-sierra-hasta-big-sur","depth":3},{"title":"Apps de iOS y, sobre todo, librerías de iOS por debajo de 15","url":"#apps-de-ios-y-sobre-todo-librerías-de-ios-por-debajo-de-15","depth":3},{"title":"Cualquiera con un target antiguo escondido en una dependencia","url":"#cualquiera-con-un-target-antiguo-escondido-en-una-dependencia","depth":3},{"title":"La vía de escape oculta","url":"#la-vía-de-escape-oculta","depth":2},{"title":"Los requisitos de SDK de la App Store dependen de la plataforma","url":"#los-requisitos-de-sdk-de-la-app-store-dependen-de-la-plataforma","depth":2},{"title":"Conservar Xcode 26, y por qué eso deja de funcionar","url":"#conservar-xcode-26-y-por-qué-eso-deja-de-funcionar","depth":2},{"title":"Xcode 27 en sí mismo es exclusivo de Apple silicon","url":"#xcode-27-en-sí-mismo-es-exclusivo-de-apple-silicon","depth":2},{"title":"El otro cambio relacionado con Intel: Universal deja de ser el valor por defecto en 27.0","url":"#el-otro-cambio-relacionado-con-intel-universal-deja-de-ser-el-valor-por-defecto-en-270","depth":2},{"title":"Un tercer mínimo que nadie menciona: libc++ en 11.0","url":"#un-tercer-mínimo-que-nadie-menciona-libc-en-110","depth":2},{"title":"Cómo arreglarlo: dependencias","url":"#cómo-arreglarlo-dependencias","depth":2},{"title":"Qué significa \"honesto\" aquí","url":"#qué-significa-honesto-aquí","depth":2},{"title":"El matiz regulatorio","url":"#el-matiz-regulatorio","depth":2},{"title":"Lista de verificación para la migración","url":"#lista-de-verificación-para-la-migración","depth":2},{"title":"Solución de problemas comunes","url":"#solución-de-problemas-comunes","depth":2},{"title":"El error persiste después de subir el target de la app","url":"#el-error-persiste-después-de-subir-el-target-de-la-app","depth":3},{"title":"El error menciona un paquete del que no dependo directamente","url":"#el-error-menciona-un-paquete-del-que-no-dependo-directamente","depth":3},{"title":"xcodebuild desde la línea de comandos falla pero la interfaz gráfica de Xcode compila","url":"#xcodebuild-desde-la-línea-de-comandos-falla-pero-la-interfaz-gráfica-de-xcode-compila","depth":3},{"title":"Activé el flag oculto y no cambió nada","url":"#activé-el-flag-oculto-y-no-cambió-nada","depth":3},{"title":"Mis runners de CI son Intel","url":"#mis-runners-de-ci-son-intel","depth":3},{"title":"Preguntas frecuentes","url":"#preguntas-frecuentes","depth":2},{"title":"¿Xcode 27 sube el mínimo de iOS?","url":"#xcode-27-sube-el-mínimo-de-ios","depth":3},{"title":"¿Cuál es el mínimo de macOS en Xcode 27?","url":"#cuál-es-el-mínimo-de-macos-en-xcode-27","depth":3},{"title":"¿Todavía puedo compilar apps Universal (Intel + Apple silicon)?","url":"#todavía-puedo-compilar-apps-universal-intel--apple-silicon","depth":3},{"title":"¿Cuándo tengo que pasarme a Xcode 27?","url":"#cuándo-tengo-que-pasarme-a-xcode-27","depth":3},{"title":"¿Es seguro el ajuste oculto para compilaciones de la App Store?","url":"#es-seguro-el-ajuste-oculto-para-compilaciones-de-la-app-store","depth":3},{"title":"Conclusión","url":"#conclusión","depth":2}],"estimatedTime":23}