{"code":"var Component=(()=>{var m=Object.create;var n=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var g=Object.getPrototypeOf,v=Object.prototype.hasOwnProperty;var b=(o,e)=>()=>(e||o((e={exports:{}}).exports,e),e.exports),f=(o,e)=>{for(var i in e)n(o,i,{get:e[i],enumerable:!0})},d=(o,e,i,s)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let r of h(e))!v.call(o,r)&&r!==i&&n(o,r,{get:()=>e[r],enumerable:!(s=u(e,r))||s.enumerable});return o};var S=(o,e,i)=>(i=o!=null?m(g(o)):{},d(e||!o||!o.__esModule?n(i,\"default\",{value:o,enumerable:!0}):i,o)),q=o=>d(n({},\"__esModule\",{value:!0}),o);var c=b((A,t)=>{t.exports=_jsx_runtime});var O={};f(O,{default:()=>p});var a=S(c());function l(o){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\",...o.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"Corre\\xE7\\xE3o em 19 de outubro de 2026:\"}),\" Corrigimos a afirma\\xE7\\xE3o anterior, sem respaldo, de um prazo de abril de 2027 para a Mac App Store. O an\\xFAncio da Apple estabelece requisitos de SDK para iOS, iPadOS, tvOS, visionOS e watchOS, sem estabelecer um prazo equivalente para macOS.\"]}),`\n`,(0,a.jsx)(e.p,{children:\"Abra um projeto de app para Mac que compila sem problemas h\\xE1 anos, mude para o beta do Xcode 27, aperte build e pare:\"}),`\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:\"No Xcode 26, essa frase era um aviso amarelo que dava para simplesmente rolar e ignorar. No Xcode 27, \\xE9 um erro vermelho e o build n\\xE3o prossegue. Essa \\xE9 toda a mudan\\xE7a, e ela \\xE9 menor e maior do que parece: menor porque a documenta\\xE7\\xE3o da Apple afirma h\\xE1 anos um piso de macOS 11 e iOS 15; maior porque o Xcode nunca aplicou essa regra, e uma quantidade enorme de apps em produ\\xE7\\xE3o depende silenciosamente disso.\"}),`\n`,(0,a.jsx)(e.p,{children:\"Este artigo detalha o que o Xcode 27 realmente exige (segundo as pr\\xF3prias tabelas e release notes da Apple), o que o Xcode 26 realmente permitia (segundo o SDK no nosso pr\\xF3prio disco), quem \\xE9 afetado, a configura\\xE7\\xE3o n\\xE3o documentada que transforma o erro de volta em aviso, e a diferen\\xE7a entre os deployment targets do Xcode e os requisitos de SDK da App Store para cada plataforma.\"}),`\n`,(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:\"Erro de build de deployment target no 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:\"principais-conclus\\xF5es\",children:\"Principais Conclus\\xF5es\"}),`\n`,(0,a.jsxs)(e.ul,{children:[`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Os deployment targets suportados pelo Xcode 27 s\\xE3o macOS 12\\u201327, iOS/iPadOS/tvOS 15\\u201327, watchOS 9\\u201327, visionOS 1\\u201327, DriverKit 21\\u201327\"}),\", de acordo com a p\\xE1gina de suporte do Xcode da Apple para a beta 6. Abaixo disso, o build falha.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"O Xcode 26 documentava o macOS 11 como piso, mas na pr\\xE1tica aceitava o 10.13.\"}),\" Verificamos o arquivo de configura\\xE7\\xF5es do SDK do macOS 26.0: 34 deployment targets v\\xE1lidos, come\\xE7ando em 10.13. O Xcode 27 fecha essa lacuna transformando o intervalo documentado no intervalo efetivamente aplicado.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"O piso do macOS mudou durante o per\\xEDodo de beta.\"}),' Em junho, a nota da Apple dizia que o back-deployment Universal ia \"up to and including macOS 27\"; os desenvolvedores interpretaram isso como Big Sur. A nota da beta 6 diz \"macOS 12 and later.\" Planeje para o Monterey, n\\xE3o para o Big Sur.']}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Existe uma v\\xE1lvula de escape n\\xE3o documentada\"}),\", \",(0,a.jsx)(e.code,{children:\"__DIAGNOSE_INVALID_DEPLOYMENT_TARGET_AS_ERROR = NO\"}),\", que segundo relatos transforma o erro de volta em aviso. Ela n\\xE3o \\xE9 suportada oficialmente, pode desaparecer a qualquer momento e n\\xE3o muda o fato de que a Apple n\\xE3o est\\xE1 testando esses targets.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Os requisitos de SDK da App Store variam por plataforma.\"}),\" A Apple anunciou que, a partir de abril de 2027, as submiss\\xF5es para as plataformas citadas dever\\xE3o usar os SDKs do iOS 27, iPadOS 27, tvOS 27, visionOS 27 e watchOS 27 ou posteriores, conforme a plataforma. Esse an\\xFAncio n\\xE3o estabelece um SDK m\\xEDnimo do macOS nem um prazo para encerrar o suporte ao macOS 11 na Mac App Store.\"]}),`\n`]}),`\n`,(0,a.jsx)(e.h2,{id:\"os-n\\xFAmeros-oficialmente\",children:\"Os N\\xFAmeros, Oficialmente\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"A \",(0,a.jsx)(e.a,{href:\"https://developer.apple.com/support/xcode/\",children:\"p\\xE1gina de suporte do Xcode\"}),\" da Apple publica uma tabela com o que cada vers\\xE3o do Xcode consegue compilar. Esta \\xE9 a compara\\xE7\\xE3o 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:'Leia com aten\\xE7\\xE3o, porque a manchete \"o Xcode 27 eleva o m\\xEDnimo\" s\\xF3 \\xE9 verdadeira pela metade. Para o iOS, o piso documentado \\xE9 15 desde o Xcode 26 e continua 15 no Xcode 27. Para o macOS, ele avan\\xE7a uma vers\\xE3o, de 11 para 12. Para o watchOS, de 8 para 9. No papel, \\xE9 um aperto modesto.'}),`\n`,(0,a.jsx)(e.p,{children:\"O que n\\xE3o est\\xE1 no papel \\xE9 que os n\\xFAmeros do Xcode 26 nunca foram, de fato, aplicados.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"o-que-o-xcode-26-realmente-permitia\",children:\"O Que o Xcode 26 Realmente Permitia\"}),`\n`,(0,a.jsx)(e.p,{children:\"Todo SDK dentro do Xcode traz um arquivo de configura\\xE7\\xF5es que declara quais deployment targets ele considera v\\xE1lidos. Na nossa m\\xE1quina, com o Xcode 26.0.1 (17A400) instalado, esse arquivo fica em:\"}),`\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:\"Para l\\xEA-lo, basta um 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:\"Sa\\xEDda no 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:['Ent\\xE3o, enquanto a tabela da Apple dizia \"macOS 11,\" o SDK dizia \"10.13,\" e o Xcode deixava voc\\xEA digitar 10.13 no campo de deployment target, emitia um aviso e compilava mesmo assim. Michael Tsai ',(0,a.jsx)(e.a,{href:\"https://mjtsai.com/blog/2026/09/01/ending-the-golden-era-for-backward-compatible-apps/\",children:\"descreve a pr\\xE1tica\"}),' sem rodeios: os desenvolvedores \"have been able to enter older targets manually,\" e boa parte do software independente para Mac fazia exatamente isso para manter usu\\xE1rios de High Sierra, Mojave e Catalina na build atual.']}),`\n`,(0,a.jsxs)(e.p,{children:[\"Se voc\\xEA tem a beta do Xcode 27 instalada, rode o mesmo comando contra o SDK dela (substituindo por \",(0,a.jsx)(e.code,{children:\"Xcode-beta.app\"}),\") e ver\\xE1 o novo piso. N\\xE3o temos a beta nesta m\\xE1quina, ent\\xE3o estamos nos baseando na tabela da Apple e nos relatos de desenvolvedores para o n\\xFAmero 12.0, em vez de l\\xEA-lo diretamente do arquivo.\"]}),`\n`,(0,a.jsx)(e.h2,{id:\"de-aviso-a-erro\",children:\"De Aviso a Erro\"}),`\n`,(0,a.jsx)(e.p,{children:'O diagn\\xF3stico em si n\\xE3o \\xE9 novo. O sistema de build da Apple emite \"the range of supported deployment target versions is X to Y\" h\\xE1 anos, como aviso. A mudan\\xE7a do Xcode 27 \\xE9 a severidade dele.'}),`\n`,(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.a,{href:\"https://bleepingswift.com/blog/deployment-target-supported-range-xcode-27\",children:\"Uma mat\\xE9ria no bleepingswift.com\"}),\" cita a forma como aparece para o iOS no 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:[\"A forma para macOS \\xE9 a mesma mensagem, com \",(0,a.jsx)(e.code,{children:\"MACOSX_DEPLOYMENT_TARGET\"}),\" e um intervalo de 12.0 a 27.0.99. Ela dispara por target, ent\\xE3o um app com uma extens\\xE3o, um widget e um bundle de testes que herdam todos um target antigo vai exibi-la quatro vezes, e corrigir apenas o app principal n\\xE3o limpa o build.\"]}),`\n`,(0,a.jsxs)(e.p,{children:[\"Os mantenedores do Vienna RSS \",(0,a.jsx)(e.a,{href:\"https://github.com/ViennaRSS/vienna-rss/issues/2140\",children:\"esbarraram nisso em 10 de junho\"}),`, dois dias depois do lan\\xE7amento da beta: o target deles era 10.13, compilava sem avisos nem erros no Xcode 26, e no Xcode 27 \"it's a hard requirement (build error).\" A preocupa\\xE7\\xE3o seguinte deles \\xE9 a mesma de todo desenvolvedor Mac nessa posi\\xE7\\xE3o: n\\xE3o se espera que o Xcode 26 seja suportado no macOS 27, ent\\xE3o a sa\\xEDda de \"manter o Xcode antigo\" tem prazo de validade.`]}),`\n`,(0,a.jsx)(e.h2,{id:\"o-que-mudou-entre-junho-e-a-beta-6\",children:\"O Que Mudou Entre Junho e a Beta 6\"}),`\n`,(0,a.jsx)(e.p,{children:\"O piso do macOS n\\xE3o se manteve est\\xE1vel ao longo do per\\xEDodo de beta, e vale a pena saber qual vers\\xE3o da hist\\xF3ria voc\\xEA est\\xE1 lendo.\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"Em junho, a release note sobre Intel dizia, conforme citado nos \",(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:[\"Isso n\\xE3o diz nada sobre um m\\xEDnimo. O \",(0,a.jsx)(e.a,{href:\"https://mjtsai.com/blog/2026/06/09/xcode-27-announced/\",children:\"resumo do primeiro dia\"}),' de Tsai interpretou a situa\\xE7\\xE3o como \"the minimum you can target is now Big Sur (or Monterey for Apple Silicon Macs),\" e a issue do ViennaRSS afirmou diretamente macOS 12. As ',(0,a.jsx)(e.a,{href:\"https://developer.apple.com/documentation/xcode-release-notes/xcode-27-release-notes\",children:\"release notes atuais da beta 6\"}),\" resolvem a quest\\xE3o:\"]}),`\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:'Mesmo n\\xFAmero de issue, reformulado para citar o macOS 12. A atualiza\\xE7\\xE3o de setembro de Tsai registra a mesma coisa: \"Xcode 27 Beta 6 documents macOS 12.0 as the minimum deployment target now.\" Se o seu plano de migra\\xE7\\xE3o foi constru\\xEDdo em cima do Big Sur, revise-o para o Monterey.'}),`\n`,(0,a.jsx)(e.h2,{id:\"quem-isso-realmente-afeta\",children:\"Quem Isso Realmente Afeta\"}),`\n`,(0,a.jsx)(e.p,{children:\"Tr\\xEAs grupos, em ordem decrescente de dor.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"apps-para-mac-que-ainda-suportam-do-high-sierra-ao-big-sur\",children:\"Apps para Mac que ainda suportam do High Sierra ao Big Sur\"}),`\n`,(0,a.jsx)(e.p,{children:\"Esse \\xE9 o grupo sobre o qual trata o post de Tsai, e o grupo que recebe menos simpatia da plataforma. Matthias Gansrigler-Hrad, da Eternal Storms, colocou isso de forma direta no 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 esses desenvolvedores, o Xcode 27 \\xE9 uma escolha for\\xE7ada: elevar o piso e cortar usu\\xE1rios de sistemas de 2017\\u20132020, ou permanecer no Xcode 26 e abrir m\\xE3o do SDK do macOS 27 e de tudo que depende dele.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"apps-ios-e-principalmente-bibliotecas-ios-abaixo-da-vers\\xE3o-15\",children:\"Apps iOS e, principalmente, bibliotecas iOS abaixo da vers\\xE3o 15\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"O piso da Apple para iOS \\xE9 15 desde o Xcode 26, ent\\xE3o um app que j\\xE1 est\\xE1 em 15 n\\xE3o sente nada. Mas o \",(0,a.jsx)(e.em,{children:\"ecossistema\"}),' estava cheio de bibliotecas declarando m\\xEDnimos mais baixos, e cada uma delas agora gera o diagn\\xF3stico em todo projeto que a importa. Os issue trackers do GitHub encheram na primeira semana de junho com pedidos praticamente id\\xEAnticos, intitulados \"Support Xcode 27: raise minimum iOS deployment target to 15\" \\u2014 contra o ',(0,a.jsx)(e.a,{href:\"https://github.com/facebook/facebook-ios-sdk/issues/3828\",children:\"Facebook iOS SDK\"}),\", que declarava \",(0,a.jsx)(e.code,{children:\".iOS(.v12)\"}),\" em seu \",(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 e outros. Se voc\\xEA depende de um pacote cujo mantenedor ainda n\\xE3o respondeu, voc\\xEA fica bloqueado at\\xE9 que ele responda ou at\\xE9 que voc\\xEA fa\\xE7a um fork.\"]}),`\n`,(0,a.jsx)(e.h3,{id:\"qualquer-um-com-um-target-antigo-enterrado-numa-depend\\xEAncia\",children:\"Qualquer um com um target antigo enterrado numa depend\\xEAncia\"}),`\n`,(0,a.jsxs)(e.p,{children:['O caso sutil. Seu app tem target 15. Um pacote Swift transitivo tem target 13. O Xcode 27 compila esse pacote com o seu toolchain, v\\xEA o 13 e derruba o seu build. N\\xE3o existe uma forma de sobrescrever isso do lado do consumidor no Swift Package Manager: a conclus\\xE3o do bleepingswift, que coincide com a nossa, \\xE9 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:\"Pisos de deployment target entre vers\\xF5es do 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:\"a-v\\xE1lvula-de-escape-oculta\",children:\"A V\\xE1lvula de Escape Oculta\"}),`\n`,(0,a.jsx)(e.p,{children:\"Ela existe, e voc\\xEA deveria conhec\\xEA-la e ter cuidado com ela.\"}),`\n`,(0,a.jsx)(e.p,{children:'Ighor July, escrevendo em 24 de julho num texto que Tsai cita, relata que na beta do Xcode 27 \"a hidden setting changed those errors back into warnings, and the compiler still produced the older targets I tested.\" Ele descreve a configura\\xE7\\xE3o como \"undocumented, absent from the normal Xcode interface, and currently being tested only\" num toolchain de beta. Um leitor do post de Tsai, Harald Striepe, d\\xE1 o nome dela:'}),`\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:[\"Essa \\xE9 uma build setting, ent\\xE3o ela vai onde as build settings costumam ir: um arquivo \",(0,a.jsx)(e.code,{children:\".xcconfig\"}),\" associado \\xE0 configura\\xE7\\xE3o, ou uma configura\\xE7\\xE3o User-Defined adicionada ao final do painel Build Settings do target. Defina-a, e a verifica\\xE7\\xE3o de deployment target volta ao comportamento do Xcode 26.\"]}),`\n`,(0,a.jsx)(e.p,{children:\"Agora as ressalvas, que n\\xE3o s\\xE3o pequenas.\"}),`\n`,(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"Ela n\\xE3o \\xE9 suportada oficialmente.\"}),\" Dois underscores no in\\xEDcio s\\xE3o a conven\\xE7\\xE3o da Apple para configura\\xE7\\xF5es internas. Ela pode ser renomeada ou removida em qualquer beta, inclusive na seguinte \\xE0quela em que voc\\xEA come\\xE7ou a depender dela.\"]}),`\n`,(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"Ela restaura o aviso, n\\xE3o os testes.\"}),\" A avalia\\xE7\\xE3o de Tsai sobre a mudan\\xE7a como um todo vale a pena citar na \\xEDntegra, porque \\xE9 a moldura honesta do assunto:\"]}),`\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:\"Desligar o erro te devolve a compilar para um target que a Apple j\\xE1 n\\xE3o testava antes e agora deixa expl\\xEDcito que n\\xE3o suporta. O que quer que estivesse quebrado no Catalina no Xcode 26 continuar\\xE1 quebrado.\"}),`\n`,(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"A configura\\xE7\\xE3o oculta n\\xE3o comprova que a App Store aceitar\\xE1 o build.\"}),\" Os requisitos de SDK e de submiss\\xE3o precisam ser verificados separadamente para cada plataforma.\"]}),`\n`,(0,a.jsx)(e.h2,{id:\"os-requisitos-de-sdk-da-app-store-s\\xE3o-espec\\xEDficos-por-plataforma\",children:\"Os Requisitos de SDK da App Store S\\xE3o Espec\\xEDficos por Plataforma\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"No \",(0,a.jsx)(e.a,{href:\"https://developer.apple.com/news/?id=k1mtkt1k\",children:\"an\\xFAncio de 9 de setembro de 2026\"}),\", a Apple definiu \",(0,a.jsx)(e.strong,{children:\"abril de 2027\"}),\" como o in\\xEDcio da exig\\xEAncia dos SDKs do iOS 27, iPadOS 27, tvOS 27, visionOS 27 e watchOS 27 ou posteriores para submiss\\xF5es nas respectivas plataformas. O an\\xFAncio n\\xE3o especifica um dia de abril e n\\xE3o inclui um SDK m\\xEDnimo do macOS.\"]}),`\n`,(0,a.jsxs)(e.p,{children:[\"A \",(0,a.jsx)(e.a,{href:\"https://developer.apple.com/news/upcoming-requirements/\",children:\"p\\xE1gina de requisitos futuros\"}),\" da Apple registra os requisitos de SDK que entraram em vigor em \",(0,a.jsx)(e.strong,{children:\"28 de abril de 2026\"}),\" para essas mesmas plataformas, sem incluir o Mac nessa exig\\xEAncia. A p\\xE1gina tamb\\xE9m lista requisitos separados para apps de Mac; a aus\\xEAncia do macOS no an\\xFAncio de abril de 2027 n\\xE3o isenta esses apps de todos os requisitos da loja.\"]}),`\n`,(0,a.jsxs)(e.p,{children:[\"O SDK usado para compilar um app e a vers\\xE3o m\\xEDnima do sistema em que ele pode rodar s\\xE3o coisas diferentes. Os \",(0,a.jsx)(e.a,{href:\"https://developer.apple.com/xcode/system-requirements\",children:\"requisitos de sistema do Xcode\"}),\" listam os deployment targets suportados pelo Xcode 27, incluindo macOS 12\\u201327 e iOS/iPadOS 15\\u201327. Esses s\\xE3o limites da ferramenta de build, n\\xE3o prazos de submiss\\xE3o \\xE0 loja por si s\\xF3.\"]}),`\n`,(0,a.jsx)(e.p,{children:\"Portanto, o an\\xFAncio da Apple n\\xE3o estabelece um prazo de abril de 2027 para atualizar apps da Mac App Store que suportam macOS 11 ou anterior. A infer\\xEAncia anterior de que o piso do Xcode 27 criava esse prazo n\\xE3o tinha respaldo e foi corrigida aqui.\"}),`\n`,(0,a.jsx)(e.p,{children:\"Antes de definir uma data de encerramento de suporte, confira os requisitos atuais de submiss\\xE3o para a plataforma, o toolchain e o canal de distribui\\xE7\\xE3o em quest\\xE3o. Compilar com sucesso usando a configura\\xE7\\xE3o oculta tamb\\xE9m n\\xE3o comprova que o build ser\\xE1 aceito na App Store.\"}),`\n`,(0,a.jsx)(e.p,{children:\"A distribui\\xE7\\xE3o direta com Developer ID tamb\\xE9m exige verificar a compatibilidade do toolchain e do sistema operacional, al\\xE9m dos requisitos de assinatura e notariza\\xE7\\xE3o. A aus\\xEAncia de um prazo para macOS nesse an\\xFAncio n\\xE3o garante que o Xcode 26, builds com targets antigos ou esse canal de distribui\\xE7\\xE3o continuar\\xE3o v\\xE1lidos indefinidamente.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"manter-o-xcode-26-por-perto-e-por-que-isso-deixa-de-funcionar\",children:\"Manter o Xcode 26 por Perto, e Por Que Isso Deixa de Funcionar\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"A mitiga\\xE7\\xE3o \\xF3bvia \\xE9 instalar os dois. Ferramentas como \",(0,a.jsx)(e.code,{children:\"xcodes\"}),\" facilitam manter o Xcode 26.6 ao lado da beta do 27 e alternar com \",(0,a.jsx)(e.code,{children:\"xcode-select\"}),\". Para um projeto com target 10.13 que voc\\xEA ainda precisa lan\\xE7ar este ano, essa \\xE9 a decis\\xE3o certa.\"]}),`\n`,(0,a.jsx)(e.p,{children:`Mas isso tem prazo de validade. A tabela de suporte da Apple lista o Xcode 26.6 como exigindo \"macOS Tahoe 26.2 \\u2013 macOS Tahoe 26.x.\" Nada diz que ele roda no macOS 27, e a leitura de Tsai \\xE9 que \"using old versions of Xcode isn't a great solution because they aren't supported on Golden Gate.\" Ele pode at\\xE9 abrir; a Apple n\\xE3o vai consertar se n\\xE3o abrir. E ele acrescenta um custo mais 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:\"Continuar no Xcode 26 significa continuar no SDK do macOS 26, o que significa que as APIs do macOS 27 s\\xF3 ficam acess\\xEDveis por dynamic lookup, ou nem isso. Para um app em modo de manuten\\xE7\\xE3o, tudo bem. Para qualquer coisa que voc\\xEA esteja desenvolvendo ativamente, \\xE9 um estrangulamento lento.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"o-pr\\xF3prio-xcode-27-\\xE9-exclusivo-para-apple-silicon\",children:\"O Pr\\xF3prio Xcode 27 \\xC9 Exclusivo para Apple Silicon\"}),`\n`,(0,a.jsx)(e.p,{children:\"Essa \\xE9 uma mudan\\xE7a separada que chega na mesma release e acaba se misturando com a hist\\xF3ria do deployment target, ent\\xE3o vale deixar claro qual \\xE9 qual.\"}),`\n`,(0,a.jsxs)(e.p,{children:['As release notes s\\xE3o inequ\\xEDvocas: \"Xcode 27 will only install and run on Apple silicon Macs.\" O bin\\xE1rio \\xE9 exclusivamente arm64, como ',(0,a.jsx)(e.a,{href:\"https://developer.apple.com/forums/thread/829619\",children:\"confirmou nos f\\xF3runs\"}),' o dono de um MacBook Pro Intel, depois que a linha \"requires macOS Tahoe 26.4 or later\" nas notas o levou a esperar o contr\\xE1rio \\u2014 o Tahoe roda em um punhado de Macs Intel, o Xcode 27 n\\xE3o.']}),`\n`,(0,a.jsx)(e.p,{children:\"O SDK continua Universal. D\\xE1 para compilar slices x86_64 e bin\\xE1rios Universal a partir do Xcode 27; s\\xF3 que precisa ser num Apple silicon. \\xC9 uma exig\\xEAncia de hardware para o desenvolvedor, n\\xE3o uma restri\\xE7\\xE3o de distribui\\xE7\\xE3o para o app.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"a-outra-mudan\\xE7a-relacionada-\\xE0-intel-o-universal-deixa-de-ser-o-padr\\xE3o-a-partir-do-270\",children:\"A Outra Mudan\\xE7a Relacionada \\xE0 Intel: o Universal Deixa de Ser o Padr\\xE3o a Partir do 27.0\"}),`\n`,(0,a.jsx)(e.p,{children:'Mais um item relacionado \\xE0 Intel nas notas da beta 6, catalogado sob \"Intel Deprecation,\" que a maior parte da cobertura deixou passar:'}),`\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:[\"Isso \\xE9 l\\xF3gico \\u2014 o macOS 27 \",(0,a.jsx)(e.a,{href:\"/blog/macos-27-end-of-intel-mac-era-final-compatibility-list-2026\",children:\"n\\xE3o roda em nenhum Mac Intel\"}),\", ent\\xE3o um target exclusivo para 27.0 n\\xE3o tem em quais m\\xE1quinas Intel rodar \\u2014 mas tem um efeito colateral. O Rosetta ainda est\\xE1 presente no macOS 27, e a \",(0,a.jsx)(e.a,{href:\"https://developer.apple.com/news/\",children:\"nota para desenvolvedores de 1\\xBA de setembro\"}),\" da Apple reafirmou que a vers\\xE3o 27 \\xE9 sua release final. Um app exclusivo para 27.0 que descarta o x86_64 por padr\\xE3o tamb\\xE9m deixa de conseguir rodar sob o Rosetta em Apple silicon, o que s\\xF3 importa se voc\\xEA distribu\\xEDa um host de plug-ins exclusivo para Intel ou algo do tipo. Adicione \",(0,a.jsx)(e.code,{children:\"x86_64\"}),\" ao \",(0,a.jsx)(e.code,{children:\"ARCHS\"}),\" explicitamente se precisar dele.\"]}),`\n`,(0,a.jsx)(e.h2,{id:\"um-terceiro-piso-que-ningu\\xE9m-menciona-o-libc-em-110\",children:\"Um Terceiro Piso Que Ningu\\xE9m Menciona: o libc++ em 11.0\"}),`\n`,(0,a.jsx)(e.p,{children:'Enterrado na mesma lista de Deprecations: \"The minimum supported deployment target on macOS for the C++ standard library has been increased to 11.0.\" Esse \\xE9 um piso diferente, mais baixo que o piso de 12.0 do sistema de build, e se aplica ao runtime de C++ contra o qual voc\\xEA faz o link, n\\xE3o ao deployment target que voc\\xEA declara. Na pr\\xE1tica, ele s\\xF3 aparece se voc\\xEA j\\xE1 contornou a verifica\\xE7\\xE3o do sistema de build \\u2014 com a configura\\xE7\\xE3o oculta, por exemplo \\u2014 e ainda tem c\\xF3digo C++ mirando 10.15 ou anterior. Nesse caso, o pr\\xF3prio libc++ \\xE9 a pr\\xF3xima coisa que barra voc\\xEA.'}),`\n`,(0,a.jsx)(e.h2,{id:\"corrigindo-depend\\xEAncias\",children:\"Corrigindo: Depend\\xEAncias\"}),`\n`,(0,a.jsx)(e.p,{children:\"Para os seus pr\\xF3prios targets, a corre\\xE7\\xE3o \\xE9 um n\\xFAmero num campo de texto. Para depend\\xEAncias:\"}),`\n`,(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"CocoaPods.\"}),\" Adicione um hook \",(0,a.jsx)(e.code,{children:\"post_install\"}),\" que reescreve o deployment target de todos os pod targets para o piso, depois rode \",(0,a.jsx)(e.code,{children:\"pod install\"}),\" e limpe a pasta de build. A vers\\xE3o do hook do bleepingswift tem o formato padr\\xE3o; o ponto \\xE9 que ele se aplica a \",(0,a.jsx)(e.em,{children:\"todos\"}),\" os pod targets, n\\xE3o s\\xF3 aos que reclamam hoje.\"]}),`\n`,(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"Swift Package Manager.\"}),\" N\\xE3o existe override. Suas op\\xE7\\xF5es s\\xE3o: atualizar para uma vers\\xE3o do pacote que j\\xE1 elevou seu \",(0,a.jsx)(e.code,{children:\"platforms\"}),\"; abrir ou dar upvote na issue; ou fazer um fork, editar o \",(0,a.jsx)(e.code,{children:\"Package.swift\"}),\", e apontar seu projeto para o fork at\\xE9 o upstream se atualizar. Confira o issue tracker primeiro \\u2014 para os SDKs principais, algu\\xE9m j\\xE1 abriu o pedido na primeira semana de junho, geralmente com um pull request anexado.\"]}),`\n`,(0,a.jsxs)(e.p,{children:[(0,a.jsx)(e.strong,{children:\"Frameworks vendored e XCFrameworks.\"}),\" Eles carregam seu pr\\xF3prio m\\xEDnimo no \",(0,a.jsx)(e.code,{children:\"Info.plist\"}),\" e nos load commands do Mach-O. O Xcode 27 n\\xE3o se recusa a fazer o \",(0,a.jsx)(e.em,{children:\"link\"}),\" de um framework bin\\xE1rio antigo, mas o linker vai avisar sobre a incompatibilidade de vers\\xE3o, e o comportamento no target antigo \\xE9 exatamente igual ao n\\xEDvel de testes que ele recebeu, ou seja, nenhum.\"]}),`\n`,(0,a.jsx)(e.h2,{id:\"o-que-honesto-significa-aqui\",children:'O Que \"Honesto\" Significa Aqui'}),`\n`,(0,a.jsx)(e.p,{children:\"Vale a pena parar um momento na moldura que Tsai prop\\xF5e, porque ela muda com o que voc\\xEA deveria estar bravo.\"}),`\n`,(0,a.jsx)(e.p,{children:'O Xcode 26 n\\xE3o suportava o macOS 10.13. Ele permitia que voc\\xEA digitasse 10.13, e gerava c\\xF3digo, e a Apple n\\xE3o testava se os frameworks do SDK 26 se comportavam corretamente num sistema operacional de 2017. Os desenvolvedores que lan\\xE7avam essas builds estavam fazendo o pr\\xF3prio QA contra um SO que a Apple j\\xE1 havia deixado para tr\\xE1s, e na maior parte das vezes funcionava, porque os frameworks s\\xE3o retrocompat\\xEDveis por design. Mas \"na maior parte das vezes\" carregava um peso real nessa frase, e a cada ano a dist\\xE2ncia entre o SDK e o target aumentava.'}),`\n`,(0,a.jsx)(e.p,{children:\"O Xcode 27 transforma o intervalo documentado no intervalo real. Isso \\xE9 uma perda para usu\\xE1rios de Macs antigos e para os desenvolvedores que os atendiam. N\\xE3o \\xE9 a perda de algo que a Apple algum dia tenha prometido.\"}),`\n`,(0,a.jsx)(e.p,{children:(0,a.jsx)(e.img,{alt:\"Linha do tempo da exig\\xEAncia de SDK da App Store e consequ\\xEAncias para o 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:\"a-complica\\xE7\\xE3o-regulat\\xF3ria\",children:\"A Complica\\xE7\\xE3o Regulat\\xF3ria\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"Mais um fio solto. Em 26 de agosto, Tsai \",(0,a.jsx)(e.a,{href:\"https://mjtsai.com/blog/2026/08/26/cyber-resilience-act/\",children:\"reuniu coment\\xE1rios\"}),\" sobre o Cyber Resilience Act da UE, cujas obriga\\xE7\\xF5es principais entram em vigor em 11 de dezembro de 2027 e que exige atualiza\\xE7\\xF5es de seguran\\xE7a por pelo menos cinco anos. Um leitor identificado como Frederik levantou a intera\\xE7\\xE3o com a 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:\"O planejamento de atualiza\\xE7\\xF5es de seguran\\xE7a pode depender das decis\\xF5es sobre deployment target, toolchain e distribui\\xE7\\xE3o. Mas o an\\xFAncio dos requisitos de SDK para abril de 2027 n\\xE3o obriga, por si s\\xF3, a encerrar o suporte ao macOS 11 naquele m\\xEAs. Verifique as op\\xE7\\xF5es reais de manuten\\xE7\\xE3o do seu app sob os requisitos atuais e consulte um profissional jur\\xEDdico qualificado sobre as obriga\\xE7\\xF5es que possam se aplicar.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"checklist-de-migra\\xE7\\xE3o\",children:\"Checklist de Migra\\xE7\\xE3o\"}),`\n`,(0,a.jsx)(e.p,{children:\"Para um app de Mac com um target antigo, em ordem:\"}),`\n`,(0,a.jsxs)(e.ol,{children:[`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Fa\\xE7a um invent\\xE1rio dos seus usu\\xE1rios reais.\"}),\" Se os seus analytics mostram que ningu\\xE9m est\\xE1 abaixo do macOS 12, isso \\xE9 uma mudan\\xE7a de uma linha e uma nota de release. A maioria dos apps est\\xE1 nessa situa\\xE7\\xE3o.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Defina o deployment target como 12.0 (macOS) ou 15.0 (iOS) em todos os targets\"}),\", incluindo extens\\xF5es, helpers e testes. Compile com a beta do Xcode 27 e elimine todas as ocorr\\xEAncias do diagn\\xF3stico.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Audite as depend\\xEAncias\"}),\" em busca de declara\\xE7\\xF5es \",(0,a.jsx)(e.code,{children:\"platforms\"}),\" e podspecs abaixo do piso. Fa\\xE7a fork do que for necess\\xE1rio.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"Defina o suporte aos sistemas antigos.\"}),\" Se voc\\xEA precisa continuar entregando para usu\\xE1rios de macOS 10.13\\u201311, verifique os requisitos de toolchain, runtime e distribui\\xE7\\xE3o, escolha e teste um plano de suporte e comunique a decis\\xE3o real aos usu\\xE1rios. N\\xE3o presuma um prazo para uma build final de Mac em abril de 2027.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.strong,{children:\"N\\xE3o leve a configura\\xE7\\xE3o oculta para produ\\xE7\\xE3o\"}),\", a menos que voc\\xEA mesmo tenha testado o resultado no SO antigo e aceite que a configura\\xE7\\xE3o pode desaparecer na pr\\xF3xima beta.\"]}),`\n`,(0,a.jsxs)(e.li,{children:[(0,a.jsxs)(e.strong,{children:[\"Se o seu target \\xE9 exclusivamente 27.0, verifique o \",(0,a.jsx)(e.code,{children:\"ARCHS\"}),\".\"]}),\" Voc\\xEA pode ter descartado o x86_64 sem perceber.\"]}),`\n`]}),`\n`,(0,a.jsx)(e.h2,{id:\"solu\\xE7\\xE3o-de-problemas-comuns\",children:\"Solu\\xE7\\xE3o de Problemas Comuns\"}),`\n`,(0,a.jsx)(e.h3,{id:\"o-erro-persiste-depois-que-elevei-o-target-do-app\",children:\"O erro persiste depois que elevei o target do app\"}),`\n`,(0,a.jsx)(e.p,{children:\"Outro target no projeto ainda tem o valor antigo. Selecione o projeto (n\\xE3o um target) no navigator, verifique o deployment target no n\\xEDvel do projeto, e depois cada target e cada bundle de testes. Widgets e extens\\xF5es de app costumam ser os culpados.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"o-erro-cita-um-pacote-do-qual-eu-n\\xE3o-dependo-diretamente\",children:\"O erro cita um pacote do qual eu n\\xE3o dependo diretamente\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"Uma depend\\xEAncia transitiva. Use \",(0,a.jsx)(e.code,{children:\"swift package show-dependencies\"}),\" (ou o package graph do Xcode) para descobrir quem o traz, e ent\\xE3o atualize esse pacote intermedi\\xE1rio ou fa\\xE7a fork da folha.\"]}),`\n`,(0,a.jsxs)(e.h3,{id:\"o-xcodebuild-pela-linha-de-comando-falha-mas-a-interface-do-xcode-compila\",children:[\"O \",(0,a.jsx)(e.code,{children:\"xcodebuild\"}),\" pela linha de comando falha, mas a interface do Xcode compila\"]}),`\n`,(0,a.jsxs)(e.p,{children:[\"Verifique qual toolchain a linha de comando est\\xE1 usando: \",(0,a.jsx)(e.code,{children:\"xcode-select -p\"}),\". Voc\\xEA pode estar com a interface na vers\\xE3o 26 e a CLI na 27, ou vice-versa.\"]}),`\n`,(0,a.jsx)(e.h3,{id:\"defini-a-flag-oculta-e-n\\xE3o-fez-diferen\\xE7a\",children:\"Defini a flag oculta e n\\xE3o fez diferen\\xE7a\"}),`\n`,(0,a.jsx)(e.p,{children:\"A flag precisa estar vis\\xEDvel para o sistema de build no n\\xEDvel em que a verifica\\xE7\\xE3o roda \\u2014 o xcconfig no n\\xEDvel do projeto \\xE9 o lugar mais seguro. Se ela estiver definida s\\xF3 num target, os outros continuam dando erro. Se mesmo assim n\\xE3o fizer diferen\\xE7a, a beta que voc\\xEA est\\xE1 usando pode t\\xEA-la removido.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"meus-ci-runners-s\\xE3o-intel\",children:\"Meus CI runners s\\xE3o Intel\"}),`\n`,(0,a.jsx)(e.p,{children:\"O Xcode 27 n\\xE3o vai instalar neles. Isso \\xE9 uma migra\\xE7\\xE3o de hardware, n\\xE3o um problema de configura\\xE7\\xE3o. Os provedores hospedados migraram para runners Apple silicon h\\xE1 um tempo; Mac minis Intel self-hosted agora chegaram ao fim de linha para builds com o toolchain atual.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"perguntas-frequentes\",children:\"Perguntas Frequentes\"}),`\n`,(0,a.jsx)(e.h3,{id:\"o-xcode-27-eleva-o-m\\xEDnimo-do-ios\",children:\"O Xcode 27 eleva o m\\xEDnimo do iOS?\"}),`\n`,(0,a.jsx)(e.p,{children:\"N\\xE3o no papel \\u2014 a tabela da Apple diz iOS 15 desde o Xcode 26. O que muda \\xE9 a aplica\\xE7\\xE3o da regra: targets abaixo de 15 que compilavam com aviso no Xcode 26 falham no Xcode 27.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"qual-\\xE9-o-m\\xEDnimo-do-macos-no-xcode-27\",children:\"Qual \\xE9 o m\\xEDnimo do macOS no Xcode 27?\"}),`\n`,(0,a.jsx)(e.p,{children:\"macOS 12 Monterey, de acordo com a p\\xE1gina de suporte do Xcode da Apple e as release notes da beta 6. No in\\xEDcio do ciclo de beta, a nota foi interpretada como Big Sur; essa leitura est\\xE1 desatualizada.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"ainda-d\\xE1-para-compilar-apps-universal-intel--apple-silicon\",children:\"Ainda d\\xE1 para compilar apps Universal (Intel + Apple silicon)?\"}),`\n`,(0,a.jsx)(e.p,{children:\"Sim, a partir de um Mac Apple silicon. O SDK do macOS 27 suporta back-deployment Universal at\\xE9 o macOS 12 e vers\\xF5es posteriores. O \\xFAnico caso em que o x86_64 \\xE9 descartado por padr\\xE3o \\xE9 um target definido para 27.0 ou mais recente.\"}),`\n`,(0,a.jsx)(e.h3,{id:\"quando-eu-preciso-migrar-para-o-xcode-27\",children:\"Quando eu preciso migrar para o Xcode 27?\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"Depende da plataforma e do canal de distribui\\xE7\\xE3o. O \",(0,a.jsx)(e.a,{href:\"https://developer.apple.com/news/?id=k1mtkt1k\",children:\"an\\xFAncio da Apple de 9 de setembro de 2026\"}),\" exige, a partir de abril de 2027, os SDKs de vers\\xE3o 27 ou posteriores para iOS, iPadOS, tvOS, visionOS e watchOS, mas n\\xE3o estabelece um prazo equivalente para macOS. A distribui\\xE7\\xE3o direta ainda requer verificar a compatibilidade do toolchain e do sistema operacional, a assinatura e a notariza\\xE7\\xE3o; n\\xE3o \\xE9 uma garantia de poder permanecer no Xcode 26 indefinidamente.\"]}),`\n`,(0,a.jsx)(e.h3,{id:\"a-configura\\xE7\\xE3o-oculta-\\xE9-segura-para-builds-da-app-store\",children:\"A configura\\xE7\\xE3o oculta \\xE9 segura para builds da App Store?\"}),`\n`,(0,a.jsx)(e.p,{children:\"Desconhecido. Ningu\\xE9m relatou uma submiss\\xE3o compilada com ela, e \\xE9 uma flag interna n\\xE3o documentada. Trate-a como uma ferramenta para builds locais e branches legadas, n\\xE3o para o seu pipeline de release.\"}),`\n`,(0,a.jsx)(e.h2,{id:\"conclus\\xE3o\",children:\"Conclus\\xE3o\"}),`\n`,(0,a.jsx)(e.p,{children:\"A mudan\\xE7a de deployment target do Xcode 27 \\xE9 uma edi\\xE7\\xE3o pequena com uma cauda longa. A Apple n\\xE3o elevou muito o piso \\u2014 uma vers\\xE3o no macOS, nenhuma no iOS \\u2014 mas parou de fingir que o piso era opcional, e uma d\\xE9cada de software independente para Mac foi constru\\xEDda em cima dessa fic\\xE7\\xE3o. O erro de build que voc\\xEA recebe hoje \\xE9 f\\xE1cil de corrigir se seus usu\\xE1rios est\\xE3o em sistemas modernos, e imposs\\xEDvel de corrigir de verdade se n\\xE3o estiverem.\"}),`\n`,(0,a.jsxs)(e.p,{children:[\"Saiba em qual grupo voc\\xEA est\\xE1. Se voc\\xEA ainda entrega para macOS 11 ou anterior, avalie seus usu\\xE1rios e as op\\xE7\\xF5es vi\\xE1veis de toolchain e distribui\\xE7\\xE3o, e teste o plano de suporte antes de anunciar uma data de encerramento. O an\\xFAncio de abril de 2027 n\\xE3o inicia uma contagem regressiva de sete meses para apps da Mac App Store. Se voc\\xEA n\\xE3o precisa mais atender esses sistemas, eleve o deployment target, corrija as depend\\xEAncias, verifique o \",(0,a.jsx)(e.code,{children:\"ARCHS\"}),\" se voc\\xEA \\xE9 exclusivamente 27, e siga em frente.\"]}),`\n`,(0,a.jsx)(e.p,{children:(0,a.jsxs)(e.em,{children:[\"Leitura relacionada: \",(0,a.jsx)(e.a,{href:\"/blog/rosetta-2-ending-macos-27-intel-app-audit-guide-2026\",children:\"audite seus apps Intel antes do fim do Rosetta\"}),\", \",(0,a.jsx)(e.a,{href:\"/blog/macos-27-end-of-intel-mac-era-final-compatibility-list-2026\",children:\"o corte de compatibilidade Intel do macOS 27\"}),\", \",(0,a.jsx)(e.a,{href:\"/blog/macos-tahoe-developer-setup-npm-python-xcode-fix-guide-2025\",children:\"corrigindo uma configura\\xE7\\xE3o de desenvolvimento no macOS Tahoe\"}),\", e \",(0,a.jsx)(e.a,{href:\"/blog/best-mac-developer-tools-2026\",children:\"as melhores ferramentas de desenvolvimento para Mac deste ano\"}),\".\"]})})]})}function p(o={}){let{wrapper:e}=o.components||{};return e?(0,a.jsx)(e,{...o,children:(0,a.jsx)(l,{...o})}):l(o)}return q(O);})();\n;return Component;","toc":[{"title":"Principais Conclusões","url":"#principais-conclusões","depth":2},{"title":"Os Números, Oficialmente","url":"#os-números-oficialmente","depth":2},{"title":"O Que o Xcode 26 Realmente Permitia","url":"#o-que-o-xcode-26-realmente-permitia","depth":2},{"title":"De Aviso a Erro","url":"#de-aviso-a-erro","depth":2},{"title":"O Que Mudou Entre Junho e a Beta 6","url":"#o-que-mudou-entre-junho-e-a-beta-6","depth":2},{"title":"Quem Isso Realmente Afeta","url":"#quem-isso-realmente-afeta","depth":2},{"title":"Apps para Mac que ainda suportam do High Sierra ao Big Sur","url":"#apps-para-mac-que-ainda-suportam-do-high-sierra-ao-big-sur","depth":3},{"title":"Apps iOS e, principalmente, bibliotecas iOS abaixo da versão 15","url":"#apps-ios-e-principalmente-bibliotecas-ios-abaixo-da-versão-15","depth":3},{"title":"Qualquer um com um target antigo enterrado numa dependência","url":"#qualquer-um-com-um-target-antigo-enterrado-numa-dependência","depth":3},{"title":"A Válvula de Escape Oculta","url":"#a-válvula-de-escape-oculta","depth":2},{"title":"Os Requisitos de SDK da App Store São Específicos por Plataforma","url":"#os-requisitos-de-sdk-da-app-store-são-específicos-por-plataforma","depth":2},{"title":"Manter o Xcode 26 por Perto, e Por Que Isso Deixa de Funcionar","url":"#manter-o-xcode-26-por-perto-e-por-que-isso-deixa-de-funcionar","depth":2},{"title":"O Próprio Xcode 27 É Exclusivo para Apple Silicon","url":"#o-próprio-xcode-27-é-exclusivo-para-apple-silicon","depth":2},{"title":"A Outra Mudança Relacionada à Intel: o Universal Deixa de Ser o Padrão a Partir do 27.0","url":"#a-outra-mudança-relacionada-à-intel-o-universal-deixa-de-ser-o-padrão-a-partir-do-270","depth":2},{"title":"Um Terceiro Piso Que Ninguém Menciona: o libc++ em 11.0","url":"#um-terceiro-piso-que-ninguém-menciona-o-libc-em-110","depth":2},{"title":"Corrigindo: Dependências","url":"#corrigindo-dependências","depth":2},{"title":"O Que \"Honesto\" Significa Aqui","url":"#o-que-honesto-significa-aqui","depth":2},{"title":"A Complicação Regulatória","url":"#a-complicação-regulatória","depth":2},{"title":"Checklist de Migração","url":"#checklist-de-migração","depth":2},{"title":"Solução de Problemas Comuns","url":"#solução-de-problemas-comuns","depth":2},{"title":"O erro persiste depois que elevei o target do app","url":"#o-erro-persiste-depois-que-elevei-o-target-do-app","depth":3},{"title":"O erro cita um pacote do qual eu não dependo diretamente","url":"#o-erro-cita-um-pacote-do-qual-eu-não-dependo-diretamente","depth":3},{"title":"O xcodebuild pela linha de comando falha, mas a interface do Xcode compila","url":"#o-xcodebuild-pela-linha-de-comando-falha-mas-a-interface-do-xcode-compila","depth":3},{"title":"Defini a flag oculta e não fez diferença","url":"#defini-a-flag-oculta-e-não-fez-diferença","depth":3},{"title":"Meus CI runners são Intel","url":"#meus-ci-runners-são-intel","depth":3},{"title":"Perguntas Frequentes","url":"#perguntas-frequentes","depth":2},{"title":"O Xcode 27 eleva o mínimo do iOS?","url":"#o-xcode-27-eleva-o-mínimo-do-ios","depth":3},{"title":"Qual é o mínimo do macOS no Xcode 27?","url":"#qual-é-o-mínimo-do-macos-no-xcode-27","depth":3},{"title":"Ainda dá para compilar apps Universal (Intel + Apple silicon)?","url":"#ainda-dá-para-compilar-apps-universal-intel--apple-silicon","depth":3},{"title":"Quando eu preciso migrar para o Xcode 27?","url":"#quando-eu-preciso-migrar-para-o-xcode-27","depth":3},{"title":"A configuração oculta é segura para builds da App Store?","url":"#a-configuração-oculta-é-segura-para-builds-da-app-store","depth":3},{"title":"Conclusão","url":"#conclusão","depth":2}],"estimatedTime":23}