{"code":"var Component=(()=>{var u=Object.create;var s=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var m=Object.getPrototypeOf,b=Object.prototype.hasOwnProperty;var f=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),k=(i,e)=>{for(var t in e)s(i,t,{get:e[t],enumerable:!0})},a=(i,e,t,d)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let r of p(e))!b.call(i,r)&&r!==t&&s(i,r,{get:()=>e[r],enumerable:!(d=g(e,r))||d.enumerable});return i};var S=(i,e,t)=>(t=i!=null?u(m(i)):{},a(e||!i||!i.__esModule?s(t,\"default\",{value:i,enumerable:!0}):t,i)),w=i=>a(s({},\"__esModule\",{value:!0}),i);var h=f((A,l)=>{l.exports=_jsx_runtime});var v={};k(v,{default:()=>o});var n=S(h());function c(i){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\",...i.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.p,{children:\"\\xD6ffnen Sie ein Mac-App-Projekt, das seit Jahren sauber baut, wechseln Sie zur Xcode-27-Beta, dr\\xFCcken Sie auf Build \\u2013 und alles stoppt:\"}),`\n`,(0,n.jsx)(n.Fragment,{children:(0,n.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,n.jsx)(e.code,{children:(0,n.jsx)(e.span,{className:\"line\",children:(0,n.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,n.jsx)(e.p,{children:\"In Xcode 26 war dieser Satz eine gelbe Warnung, \\xFCber die man einfach hinwegscrollen konnte. In Xcode 27 ist es ein roter Fehler, und der Build wird nicht fortgesetzt. Das ist die gesamte \\xC4nderung \\u2013 und sie ist zugleich kleiner und gr\\xF6\\xDFer, als sie klingt: kleiner, weil Apples Dokumentation seit Jahren eine Untergrenze von macOS 11 und iOS 15 behauptet; gr\\xF6\\xDFer, weil Xcode dies nie durchgesetzt hat und eine ganze Reihe ausgelieferter Apps stillschweigend darauf angewiesen ist.\"}),`\n`,(0,n.jsx)(e.p,{children:\"Dieser Artikel legt dar, was Xcode 27 tats\\xE4chlich durchsetzt (auf Basis von Apples eigenen Tabellen und Release Notes), was Xcode 26 tats\\xE4chlich erlaubte (basierend auf dem SDK auf unserer eigenen Festplatte), wen es betrifft, die undokumentierte Einstellung, die den Fehler wieder in eine Warnung verwandelt, und warum die eigentlich entscheidende Frist nicht die Ver\\xF6ffentlichung von Xcode 27 ist, sondern die SDK-Anforderung des App Store im kommenden Fr\\xFChjahr.\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:\"Xcode-27-Build-Fehler beim Deployment Target\",src:\"/images/blog/xcode-27-minimum-deployment-target-macos-12-ios-15-build-error-fix-2026/hero.webp\",width:\"1024\",height:\"541\"})}),`\n`,(0,n.jsx)(e.h2,{id:\"wichtigste-erkenntnisse\",children:\"Wichtigste Erkenntnisse\"}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Die von Xcode 27 unterst\\xFCtzten Deployment-Targets sind macOS 12\\u201327, iOS/iPadOS/tvOS 15\\u201327, watchOS 9\\u201327, visionOS 1\\u201327, DriverKit 21\\u201327\"}),\", laut Apples Xcode-Support-Seite f\\xFCr Beta 6. Darunter schl\\xE4gt der Build fehl.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Xcode 26 dokumentierte macOS 11 als Untergrenze, akzeptierte in Wirklichkeit aber 10.13.\"}),\" Wir haben die Settings-Datei des macOS-26.0-SDKs gepr\\xFCft: 34 g\\xFCltige Deployment-Targets, beginnend bei 10.13. Xcode 27 schlie\\xDFt diese L\\xFCcke, indem der dokumentierte Bereich zum durchgesetzten Bereich wird.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Die macOS-Untergrenze verschob sich w\\xE4hrend der Beta-Phase.\"}),' Im Juni sprach Apples Hinweis von Universal-R\\xFCckw\\xE4rtskompatibilit\\xE4t \\u201Ebis einschlie\\xDFlich macOS 27\"; Entwickler lasen das als Big Sur. Der Hinweis zu Beta 6 spricht von \\u201EmacOS 12 und neuer\". Planen Sie mit Monterey, nicht mit Big Sur.']}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Es gibt eine undokumentierte Hintert\\xFCr\"}),\", \",(0,n.jsx)(e.code,{children:\"__DIAGNOSE_INVALID_DEPLOYMENT_TARGET_AS_ERROR = NO\"}),\", die den Fehler Berichten zufolge wieder in eine Warnung verwandelt. Sie wird nicht offiziell unterst\\xFCtzt, kann jederzeit verschwinden und \\xE4ndert nichts daran, dass Apple diese Targets nicht testet.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Die eigentlich entscheidende Frist ist die SDK-Anforderung des App Store.\"}),\" Das SDK von Xcode 26 wurde am 28. April 2026 f\\xFCr Einreichungen verpflichtend. Wiederholt Apple dieses Muster, wird das SDK von Xcode 27 etwa im April 2027 verpflichtend \\u2013 und ab diesem Zeitpunkt ist es \\xFCber den normalen Kanal nicht mehr m\\xF6glich, in einer App-Store-App macOS 11 oder iOS 14 zu unterst\\xFCtzen.\"]}),`\n`]}),`\n`,(0,n.jsx)(e.h2,{id:\"die-zahlen-offiziell\",children:\"Die Zahlen, offiziell\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Apples \",(0,n.jsx)(e.a,{href:\"https://developer.apple.com/support/xcode/\",children:\"Xcode-Support-Seite\"}),\" ver\\xF6ffentlicht eine Tabelle, f\\xFCr welche Systeme jede Xcode-Version bauen kann. Das ist der Vergleich, auf den es ankommt:\"]}),`\n`,(0,n.jsxs)(e.table,{children:[(0,n.jsx)(e.thead,{children:(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.th,{children:\"Plattform\"}),(0,n.jsx)(e.th,{children:\"Xcode 26.6\"}),(0,n.jsx)(e.th,{children:\"Xcode 27 Beta 6\"})]})}),(0,n.jsxs)(e.tbody,{children:[(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:\"macOS\"}),(0,n.jsx)(e.td,{children:\"11 \\u2013 26.5\"}),(0,n.jsx)(e.td,{children:(0,n.jsx)(e.strong,{children:\"12 \\u2013 27\"})})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:\"iOS / iPadOS\"}),(0,n.jsx)(e.td,{children:\"15 \\u2013 26.5\"}),(0,n.jsx)(e.td,{children:\"15 \\u2013 27\"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:\"tvOS\"}),(0,n.jsx)(e.td,{children:\"15 \\u2013 26.5\"}),(0,n.jsx)(e.td,{children:\"15 \\u2013 27\"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:\"watchOS\"}),(0,n.jsx)(e.td,{children:\"8 \\u2013 26.5\"}),(0,n.jsx)(e.td,{children:(0,n.jsx)(e.strong,{children:\"9 \\u2013 27\"})})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:\"visionOS\"}),(0,n.jsx)(e.td,{children:\"1 \\u2013 26.5\"}),(0,n.jsx)(e.td,{children:\"1 \\u2013 27\"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{children:\"DriverKit\"}),(0,n.jsx)(e.td,{children:\"20 \\u2013 25.5\"}),(0,n.jsx)(e.td,{children:(0,n.jsx)(e.strong,{children:\"21 \\u2013 27\"})})]})]})]}),`\n`,(0,n.jsx)(e.p,{children:'Lesen Sie genau hin, denn die Schlagzeile \\u201EXcode 27 hebt die Untergrenze an\" ist nur halb wahr. Bei iOS lag die dokumentierte Untergrenze w\\xE4hrend der gesamten Xcode-26-Reihe bei 15 und bleibt in Xcode 27 bei 15. Bei macOS verschiebt sie sich um eine Version, von 11 auf 12. Bei watchOS von 8 auf 9. Auf dem Papier ist das eine moderate Versch\\xE4rfung.'}),`\n`,(0,n.jsx)(e.p,{children:\"Was nicht auf dem Papier steht: Die Zahlen von Xcode 26 wurden nie tats\\xE4chlich durchgesetzt.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"was-xcode-26-tats\\xE4chlich-erlaubte\",children:\"Was Xcode 26 tats\\xE4chlich erlaubte\"}),`\n`,(0,n.jsx)(e.p,{children:\"Jedes SDK in Xcode enth\\xE4lt eine Settings-Datei, die festlegt, welche Deployment-Targets als g\\xFCltig gelten. Auf unserem Rechner, mit installiertem Xcode 26.0.1 (17A400), liegt diese Datei unter:\"}),`\n`,(0,n.jsx)(n.Fragment,{children:(0,n.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,n.jsx)(e.code,{children:(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{children:\"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.json\"})})})})}),`\n`,(0,n.jsx)(e.p,{children:\"Sie mit einem einzigen Befehl auszulesen:\"}),`\n`,(0,n.jsx)(n.Fragment,{children:(0,n.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,n.jsxs)(e.code,{children:[(0,n.jsxs)(e.span,{className:\"line\",children:[(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},children:\"python3\"}),(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},children:\" -c\"}),(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\" '\"})]}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"import json\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.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,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'t = d[\"SupportedTargets\"][\"macosx\"]'})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'print(t[\"MinimumDeploymentTarget\"], \"->\", t[\"MaximumDeploymentTarget\"])'})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:'print(len(t[\"ValidDeploymentTargets\"]), \"valid:\", t[\"ValidDeploymentTargets\"][:6], \"...\")'})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{style:{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},children:\"'\"})})]})})}),`\n`,(0,n.jsx)(e.p,{children:\"Ausgabe unter Xcode 26.0.1:\"}),`\n`,(0,n.jsx)(n.Fragment,{children:(0,n.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,n.jsxs)(e.code,{children:[(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{children:\"10.13 -> 26.0.99\"})}),`\n`,(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{children:\"34 valid: ['10.13', '10.14', '10.15', '11.0', '11.1', '11.2'] ...\"})})]})})}),`\n`,(0,n.jsxs)(e.p,{children:['W\\xE4hrend Apples Tabelle also \\u201EmacOS 11\" sagte, sagte das SDK \\u201E10.13\" \\u2013 und Xcode lie\\xDF Sie 10.13 in das Deployment-Target-Feld eintragen, warnte Sie und baute dann trotzdem. Michael Tsai ',(0,n.jsx)(e.a,{href:\"https://mjtsai.com/blog/2026/09/01/ending-the-golden-era-for-backward-compatible-apps/\",children:\"beschreibt die Praxis\"}),' unverbl\\xFCmt: Entwickler \\u201Ekonnten \\xE4ltere Targets manuell eingeben\", und ein Gro\\xDFteil unabh\\xE4ngiger Mac-Software tat genau das, um Nutzer von High Sierra, Mojave und Catalina auf dem aktuellen Build zu halten.']}),`\n`,(0,n.jsxs)(e.p,{children:[\"Wenn Sie die Xcode-27-Beta installiert haben, f\\xFChren Sie denselben Befehl gegen deren SDK aus (ersetzen Sie dabei \",(0,n.jsx)(e.code,{children:\"Xcode-beta.app\"}),\"), und Sie sehen die neue Untergrenze. Auf diesem Rechner steht uns die Beta nicht zur Verf\\xFCgung, weshalb wir uns f\\xFCr die Zahl 12.0 auf Apples Tabelle und Entwicklerberichte st\\xFCtzen, statt sie selbst aus der Datei auszulesen.\"]}),`\n`,(0,n.jsx)(e.h2,{id:\"von-der-warnung-zum-fehler\",children:\"Von der Warnung zum Fehler\"}),`\n`,(0,n.jsx)(e.p,{children:'Die Diagnosemeldung selbst ist nicht neu. Apples Build-System gibt seit Jahren die Meldung \\u201Ethe range of supported deployment target versions is X to Y\" als Warnung aus. Was sich mit Xcode 27 \\xE4ndert, ist ihr Schweregrad.'}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.a,{href:\"https://bleepingswift.com/blog/deployment-target-supported-range-xcode-27\",children:\"Ein Artikel auf bleepingswift.com\"}),\" zitiert die iOS-Form der Meldung, wie sie in Xcode 27 erscheint:\"]}),`\n`,(0,n.jsxs)(e.blockquote,{children:[`\n`,(0,n.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,n.jsxs)(e.p,{children:[\"Die macOS-Variante ist dieselbe Meldung mit \",(0,n.jsx)(e.code,{children:\"MACOSX_DEPLOYMENT_TARGET\"}),\" und einem Bereich von 12.0 bis 27.0.99. Sie tritt pro Target auf: Eine App mit einer Extension, einem Widget und einem Test-Bundle, die alle ein altes Target erben, zeigt die Meldung viermal, und allein die Hauptapp zu korrigieren, r\\xE4umt den Build nicht.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Die Maintainer von Vienna RSS \",(0,n.jsx)(e.a,{href:\"https://github.com/ViennaRSS/vienna-rss/issues/2140\",children:\"stie\\xDFen am 10. Juni darauf\"}),`, zwei Tage nach dem Erscheinen der Beta: Ihr Target lag bei 10.13, das baute unter Xcode 26 ohne Warnungen oder Fehler, und unter Xcode 27 ist es \\u201Eit's a hard requirement (build error)\". Ihre Folgesorge teilt jeder Mac-Entwickler in dieser Lage: Xcode 26 wird auf macOS 27 voraussichtlich nicht unterst\\xFCtzt, weshalb der Ausweg \\u201Edie alte Xcode-Version behalten\" ein Verfallsdatum hat.`]}),`\n`,(0,n.jsx)(e.h2,{id:\"was-sich-zwischen-juni-und-beta-6-\\xE4nderte\",children:\"Was sich zwischen Juni und Beta 6 \\xE4nderte\"}),`\n`,(0,n.jsx)(e.p,{children:\"Die macOS-Untergrenze war w\\xE4hrend der Beta-Phase nicht stabil, und es lohnt sich zu wissen, welche Version der Geschichte man gerade liest.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Im Juni lautete der Release-Note-Hinweis zu Intel, wie in den \",(0,n.jsx)(e.a,{href:\"https://developer.apple.com/forums/thread/829619\",children:\"Apple Developer Forums\"}),\" zitiert:\"]}),`\n`,(0,n.jsxs)(e.blockquote,{children:[`\n`,(0,n.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,n.jsxs)(e.p,{children:[\"Das sagt nichts \\xFCber eine Untergrenze aus. Tsais \",(0,n.jsx)(e.a,{href:\"https://mjtsai.com/blog/2026/06/09/xcode-27-announced/\",children:\"Zusammenfassung vom ersten Tag\"}),' deutete die Lage so, dass \\u201Ethe minimum you can target is now Big Sur (or Monterey for Apple Silicon Macs)\", und das ViennaRSS-Issue nannte direkt macOS 12. Die ',(0,n.jsx)(e.a,{href:\"https://developer.apple.com/documentation/xcode-release-notes/xcode-27-release-notes\",children:\"aktuellen Release Notes zu Beta 6\"}),\" kl\\xE4ren das:\"]}),`\n`,(0,n.jsxs)(e.blockquote,{children:[`\n`,(0,n.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,n.jsx)(e.p,{children:'Dieselbe Issue-Nummer, umformuliert, um macOS 12 explizit zu nennen. Auch Tsais September-Update stellt dasselbe fest: \\u201EXcode 27 Beta 6 documents macOS 12.0 as the minimum deployment target now.\" Wenn Ihr Migrationsplan auf Big Sur aufbaute, \\xFCberarbeiten Sie ihn auf Monterey.'}),`\n`,(0,n.jsx)(e.h2,{id:\"wen-es-wirklich-trifft\",children:\"Wen es wirklich trifft\"}),`\n`,(0,n.jsx)(e.p,{children:\"Drei Gruppen, in absteigender Reihenfolge des Schmerzes.\"}),`\n`,(0,n.jsx)(e.h3,{id:\"mac-apps-die-weiterhin-high-sierra-bis-big-sur-unterst\\xFCtzen\",children:\"Mac-Apps, die weiterhin High Sierra bis Big Sur unterst\\xFCtzen\"}),`\n`,(0,n.jsx)(e.p,{children:\"Das ist die Gruppe, um die es in Tsais Beitrag geht, und die Gruppe, der die Plattform am wenigsten Verst\\xE4ndnis entgegenbringt. Matthias Gansrigler-Hrad von Eternal Storms brachte es auf Mastodon direkt auf den Punkt:\"}),`\n`,(0,n.jsxs)(e.blockquote,{children:[`\n`,(0,n.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,n.jsx)(e.p,{children:\"F\\xFCr diese Entwickler bedeutet Xcode 27 eine Zwangswahl: entweder die Untergrenze anheben und Nutzer von Systemen aus 2017\\u20132020 abschneiden, oder bei Xcode 26 bleiben und auf das macOS-27-SDK sowie alles, was davon abh\\xE4ngt, verzichten.\"}),`\n`,(0,n.jsx)(e.h3,{id:\"ios-apps-und-vor-allem-ios-bibliotheken-unterhalb-von-15\",children:\"iOS-Apps und vor allem iOS-Bibliotheken unterhalb von 15\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Apples Untergrenze f\\xFCr iOS liegt seit Xcode 26 bei 15, eine App, die bereits auf 15 steht, merkt also nichts. Aber das \",(0,n.jsx)(e.em,{children:\"\\xD6kosystem\"}),' war voller Bibliotheken, die niedrigere Minima deklarierten, und jede einzelne erzeugt jetzt die Diagnosemeldung in jedem Projekt, das sie importiert. Die GitHub-Issue-Tracker f\\xFCllten sich in der ersten Juniwoche mit nahezu identischen Anfragen unter dem Titel \\u201ESupport Xcode 27: raise minimum iOS deployment target to 15\" \\u2014 gegen das ',(0,n.jsx)(e.a,{href:\"https://github.com/facebook/facebook-ios-sdk/issues/3828\",children:\"Facebook iOS SDK\"}),\", das in seiner \",(0,n.jsx)(e.code,{children:\"Package.swift\"}),\" \",(0,n.jsx)(e.code,{children:\".iOS(.v12)\"}),\" deklarierte, gegen \",(0,n.jsx)(e.a,{href:\"https://github.com/adjust/ios_sdk/issues/799\",children:\"Adjust\"}),\", DataDog, SDWebImage und andere. H\\xE4ngen Sie von einem Paket ab, dessen Maintainer nicht reagiert hat, sind Sie blockiert, bis das geschieht oder bis Sie forken.\"]}),`\n`,(0,n.jsx)(e.h3,{id:\"wer-ein-altes-target-tief-in-einer-abh\\xE4ngigkeit-vergraben-hat\",children:\"Wer ein altes Target tief in einer Abh\\xE4ngigkeit vergraben hat\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Der subtile Fall. Ihre App zielt auf 15. Ein transitives Swift-Package zielt auf 13. Xcode 27 baut dieses Package mit Ihrer Toolchain, sieht die 13 und l\\xE4sst Ihren Build fehlschlagen. Im Swift Package Manager gibt es keine konsumentenseitige Override-M\\xF6glichkeit: bleepingswifts Fazit, das sich mit unserem deckt, lautet, dass \\u201Epackages declaring older minimums in their \",(0,n.jsx)(e.code,{children:\"platforms\"}),' declaration require either upgrading to a newer package version or forking and updating the requirement yourself.\"']}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:\"Deployment-Target-Untergrenzen im Vergleich der Xcode-Versionen\",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,n.jsx)(e.h2,{id:\"die-versteckte-hintert\\xFCr\",children:\"Die versteckte Hintert\\xFCr\"}),`\n`,(0,n.jsx)(e.p,{children:\"Es gibt eine, und Sie sollten sie kennen und vorsichtig mit ihr umgehen.\"}),`\n`,(0,n.jsx)(e.p,{children:'Ighor July berichtet in einem Beitrag vom 24. Juli, den Tsai zitiert, dass in der Xcode-27-Beta \\u201Ea hidden setting changed those errors back into warnings, and the compiler still produced the older targets I tested.\" Er beschreibt die Einstellung als \\u201Eundocumented, absent from the normal Xcode interface, and currently being tested only\" in einer Beta-Toolchain. Ein Leser von Tsais Beitrag, Harald Striepe, nennt sie beim Namen:'}),`\n`,(0,n.jsx)(n.Fragment,{children:(0,n.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,n.jsx)(e.code,{children:(0,n.jsx)(e.span,{className:\"line\",children:(0,n.jsx)(e.span,{children:\"__DIAGNOSE_INVALID_DEPLOYMENT_TARGET_AS_ERROR = NO\"})})})})}),`\n`,(0,n.jsxs)(e.p,{children:[\"Das ist eine Build-Einstellung und geh\\xF6rt daher dorthin, wo Build-Einstellungen hingeh\\xF6ren: in eine \",(0,n.jsx)(e.code,{children:\".xcconfig\"}),\"-Datei, die der Konfiguration zugeordnet ist, oder als benutzerdefinierte Einstellung (User-Defined Setting) am unteren Ende des Build-Settings-Bereichs des Targets. Setzen Sie sie, kehrt die Deployment-Target-Pr\\xFCfung zum Verhalten von Xcode 26 zur\\xFCck.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"Nun zu den Einschr\\xE4nkungen, die nicht klein sind.\"}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Sie wird nicht offiziell unterst\\xFCtzt.\"}),\" Zwei f\\xFChrende Unterstriche sind Apples Konvention f\\xFCr interne Einstellungen. Sie kann in jeder Beta umbenannt oder entfernt werden \\u2013 auch in der, direkt nachdem Sie beginnen, sich darauf zu verlassen.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Sie stellt die Warnung wieder her, nicht die Tests.\"}),\" Tsais Einsch\\xE4tzung der gesamten \\xC4nderung lohnt sich im vollen Wortlaut, weil sie die ehrliche Einordnung liefert:\"]}),`\n`,(0,n.jsxs)(e.blockquote,{children:[`\n`,(0,n.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,n.jsx)(e.p,{children:\"Den Fehler abzuschalten bringt Sie zur\\xFCck in einen Zustand, in dem Sie f\\xFCr ein Target bauen, das Apple zuvor nicht getestet hat und jetzt ausdr\\xFCcklich nicht unterst\\xFCtzt. Was unter Catalina in Xcode 26 kaputt war, bleibt kaputt.\"}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Sie l\\xF6st das App-Store-Problem nicht.\"}),\" Damit kommen wir zu der Frist, auf die es wirklich ankommt.\"]}),`\n`,(0,n.jsx)(e.h2,{id:\"die-eigentliche-frist-ist-april-2027\",children:\"Die eigentliche Frist ist April 2027\"}),`\n`,(0,n.jsx)(e.p,{children:\"Die Ver\\xF6ffentlichung von Xcode 27 selbst zwingt niemanden, es zu nutzen. Die SDK-Anforderung des App Store schon.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Apples \",(0,n.jsx)(e.a,{href:\"https://developer.apple.com/news/upcoming-requirements/\",children:\"Seite zu kommenden Anforderungen\"}),\" h\\xE4lt fest, dass Apps, die seit dem \",(0,n.jsx)(e.strong,{children:\"28. April 2026\"}),\" zu App Store Connect hochgeladen werden, mit Xcode 26 und den 26er-SDKs gebaut sein m\\xFCssen. Apple wendet diese Regel seit Jahren jeden Fr\\xFChling auf jedes neue SDK an: Das aktuelle SDK wird im April verpflichtend, etwa sieben Monate nach seiner Ver\\xF6ffentlichung.\"]}),`\n`,(0,n.jsx)(e.p,{children:\"H\\xE4lt sich dieses Muster \\u2014 und Apple hat das Datum f\\xFCr 2027 nicht angek\\xFCndigt, das ist also eine Hochrechnung aus dem Muster, keine feststehende Tatsache \\u2014, dann muss ab etwa April 2027 jede App-Store-Einreichung mit dem Xcode-27-SDK gebaut sein. Zu diesem Zeitpunkt gilt:\"}),`\n`,(0,n.jsxs)(e.ul,{children:[`\n`,(0,n.jsx)(e.li,{children:\"Eine Mac-App-Store-App kann nicht mehr mit einem Deployment-Target unter 12.0 aktualisiert werden, weil die einzige vom Store akzeptierte Toolchain den Build verweigert.\"}),`\n`,(0,n.jsx)(e.li,{children:\"Eine iOS-App-Store-App kann aus demselben Grund nicht mehr unter 15.0 aktualisiert werden.\"}),`\n`,(0,n.jsx)(e.li,{children:\"Ob die Hintert\\xFCr-Einstellung die App-Store-Validierung \\xFCbersteht, ist offen. Niemand hat berichtet, dies getestet zu haben, und wir w\\xFCrden kein Gesch\\xE4ftsmodell darauf aufbauen.\"}),`\n`]}),`\n`,(0,n.jsx)(e.p,{children:\"Au\\xDFerhalb des App Store \\u2014 bei direkter Distribution mit Developer ID \\u2014 gilt nichts davon. Sie k\\xF6nnen mit Xcode 26 weiterbauen, solange Xcode 26 auf einem Mac l\\xE4uft, den Sie besitzen. Das ist das n\\xE4chste Problem.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"xcode-26-behalten--und-warum-das-aufh\\xF6rt-zu-funktionieren\",children:\"Xcode 26 behalten \\u2013 und warum das aufh\\xF6rt zu funktionieren\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Die naheliegende Abhilfe ist, beide Versionen zu installieren. Tools wie \",(0,n.jsx)(e.code,{children:\"xcodes\"}),\" machen es einfach, Xcode 26.6 neben der 27er-Beta zu behalten und mit \",(0,n.jsx)(e.code,{children:\"xcode-select\"}),\" zu wechseln. F\\xFCr ein Projekt mit einem 10.13-Target, das Sie dieses Jahr noch ausliefern m\\xFCssen, ist das die richtige Entscheidung.\"]}),`\n`,(0,n.jsx)(e.p,{children:`Sie hat ein Ablaufdatum. Apples Support-Tabelle listet f\\xFCr Xcode 26.6 als Voraussetzung \\u201EmacOS Tahoe 26.2 \\u2013 macOS Tahoe 26.x.\" Nirgends steht, dass es unter macOS 27 l\\xE4uft, und Tsais Einsch\\xE4tzung ist, dass \\u201Eusing old versions of Xcode isn't a great solution because they aren't supported on Golden Gate.\" Es mag starten; falls nicht, wird Apple es nicht reparieren. Und er f\\xFCgt einen subtileren Preis hinzu:`}),`\n`,(0,n.jsxs)(e.blockquote,{children:[`\n`,(0,n.jsx)(e.p,{children:\"Swift also makes it more difficult to call newer APIs when using an older SDK.\"}),`\n`]}),`\n`,(0,n.jsx)(e.p,{children:\"Bei Xcode 26 zu bleiben bedeutet, beim macOS-26-SDK zu bleiben, was wiederum bedeutet, dass die macOS-27-APIs nur per dynamischem Lookup erreichbar sind oder gar nicht. F\\xFCr eine App im Wartungsmodus ist das in Ordnung. F\\xFCr alles, was Sie aktiv weiterentwickeln, ist es eine langsame Erdrosselung.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"xcode-27-selbst-l\\xE4uft-nur-auf-apple-silicon\",children:\"Xcode 27 selbst l\\xE4uft nur auf Apple Silicon\"}),`\n`,(0,n.jsx)(e.p,{children:\"Das ist eine eigenst\\xE4ndige \\xC4nderung, die im selben Release landet und sich mit der Deployment-Target-Geschichte vermischt \\u2014 daher hier explizit auseinandergehalten.\"}),`\n`,(0,n.jsxs)(e.p,{children:['Die Release Notes sind eindeutig: \\u201EXcode 27 will only install and run on Apple silicon Macs.\" Das Binary ist ausschlie\\xDFlich arm64, wie ein Besitzer eines Intel-MacBook-Pro ',(0,n.jsx)(e.a,{href:\"https://developer.apple.com/forums/thread/829619\",children:\"in den Foren best\\xE4tigte\"}),', nachdem ihn die Zeile \\u201Erequires macOS Tahoe 26.4 or later\" in den Notes zun\\xE4chst etwas anderes hatte erwarten lassen \\u2014 Tahoe l\\xE4uft auf einer Handvoll Intel-Macs, Xcode 27 nicht.']}),`\n`,(0,n.jsx)(e.p,{children:\"Das SDK bleibt Universal. Sie k\\xF6nnen aus Xcode 27 heraus weiterhin x86_64-Slices und Universal-Binaries bauen; Sie m\\xFCssen es nur auf Apple Silicon tun. Das ist eine Hardware-Anforderung f\\xFCr den Entwickler, keine Distributionsbeschr\\xE4nkung f\\xFCr die App.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"die-andere-intel-\\xE4nderung-universal-ist-ab-270-nicht-mehr-standard\",children:\"Die andere Intel-\\xC4nderung: Universal ist ab 27.0 nicht mehr Standard\"}),`\n`,(0,n.jsx)(e.p,{children:'Noch ein Intel-bezogener Punkt in den Beta-6-Notes, verzeichnet unter \\u201EIntel Deprecation\", den die meiste Berichterstattung \\xFCberging:'}),`\n`,(0,n.jsxs)(e.blockquote,{children:[`\n`,(0,n.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,n.jsx)(e.code,{children:\"ARCHS_STANDARD\"}),\" build setting will no longer include x86_64 when \",(0,n.jsx)(e.code,{children:\"MACOSX_DEPLOYMENT_TARGET\"}),\" or \",(0,n.jsx)(e.code,{children:\"DRIVERKIT_DEPLOYMENT_TARGET\"}),\" >= 27.0. The x86_64 architecture can be added to the \",(0,n.jsx)(e.code,{children:\"ARCHS\"}),\" build setting if this is needed. (161837535)\"]}),`\n`]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Das ist logisch \\u2014 macOS 27 \",(0,n.jsx)(e.a,{href:\"/blog/macos-27-end-of-intel-mac-era-final-compatibility-list-2026\",children:\"l\\xE4uft auf keinem Intel-Mac\"}),\", ein reines 27.0-Target hat also gar keine Intel-Maschinen, auf denen es laufen k\\xF6nnte \\u2014, hat aber einen Nebeneffekt. Rosetta ist in macOS 27 weiterhin vorhanden, und Apples \",(0,n.jsx)(e.a,{href:\"https://developer.apple.com/news/\",children:\"Entwicklerhinweis vom 1. September\"}),\" bekr\\xE4ftigte, dass 27 dessen letztes Release ist. Eine reine 27.0-App, die x86_64 standardm\\xE4\\xDFig fallen l\\xE4sst, ist damit auch unter Rosetta auf Apple Silicon nicht mehr lauff\\xE4hig \\u2014 was nur relevant ist, wenn Sie einen reinen Intel-Plug-in-Host oder \\xC4hnliches ausgeliefert haben. F\\xFCgen Sie \",(0,n.jsx)(e.code,{children:\"x86_64\"}),\" bei Bedarf explizit zu \",(0,n.jsx)(e.code,{children:\"ARCHS\"}),\" hinzu.\"]}),`\n`,(0,n.jsx)(e.h2,{id:\"eine-dritte-untergrenze-die-niemand-erw\\xE4hnt-libc-bei-110\",children:\"Eine dritte Untergrenze, die niemand erw\\xE4hnt: libc++ bei 11.0\"}),`\n`,(0,n.jsx)(e.p,{children:'Versteckt in derselben Deprecations-Liste: \\u201EThe minimum supported deployment target on macOS for the C++ standard library has been increased to 11.0.\" Das ist eine andere, niedrigere Untergrenze als die 12.0 des Build-Systems, und sie betrifft die C++-Laufzeitbibliothek, gegen die Sie linken, nicht das von Ihnen deklarierte Deployment-Target. In der Praxis taucht sie nur auf, wenn Sie die Build-System-Pr\\xFCfung umgangen haben \\u2014 etwa mit der versteckten Einstellung \\u2014 und mit C++-Code weiterhin auf 10.15 oder \\xE4lter zielen. Dann ist libc++ selbst das N\\xE4chste, was Sie aufh\\xE4lt.'}),`\n`,(0,n.jsx)(e.h2,{id:\"die-l\\xF6sung-abh\\xE4ngigkeiten\",children:\"Die L\\xF6sung: Abh\\xE4ngigkeiten\"}),`\n`,(0,n.jsx)(e.p,{children:\"F\\xFCr Ihre eigenen Targets besteht die L\\xF6sung aus einer Zahl in einem Textfeld. F\\xFCr Abh\\xE4ngigkeiten:\"}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"CocoaPods.\"}),\" F\\xFCgen Sie einen \",(0,n.jsx)(e.code,{children:\"post_install\"}),\"-Hook hinzu, der das Deployment-Target jedes Pod-Targets auf die Untergrenze umschreibt, dann \",(0,n.jsx)(e.code,{children:\"pod install\"}),\" ausf\\xFChren und den Build-Ordner leeren. bleepingswifts Version des Hooks hat die Standardform; entscheidend ist, dass er auf \",(0,n.jsx)(e.em,{children:\"alle\"}),\" Pod-Targets angewendet wird, nicht nur auf die, die heute meckern.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Swift Package Manager.\"}),\" Hier gibt es keine Override-M\\xF6glichkeit. Ihre Optionen: auf eine Paketversion aktualisieren, die ihre \",(0,n.jsx)(e.code,{children:\"platforms\"}),\" bereits angehoben hat; das Issue er\\xF6ffnen oder hochvoten; oder forken, \",(0,n.jsx)(e.code,{children:\"Package.swift\"}),\" bearbeiten und Ihr Projekt auf den Fork zeigen lassen, bis Upstream nachzieht. Pr\\xFCfen Sie zuerst den Issue-Tracker \\u2014 bei den gro\\xDFen SDKs hat jemand die Anfrage in der ersten Juniwoche eingereicht, meist mit angeh\\xE4ngtem Pull Request.\"]}),`\n`,(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:\"Vendored Frameworks und XCFrameworks.\"}),\" Diese tragen ihr eigenes Minimum in ihrer \",(0,n.jsx)(e.code,{children:\"Info.plist\"}),\" und ihren Mach-O-Load-Commands. Xcode 27 verweigert nicht das \",(0,n.jsx)(e.em,{children:\"Linken\"}),\" eines alten Binary-Frameworks, aber der Linker warnt vor der Versionsabweichung, und das Verhalten auf dem alten Target entspricht genau dem Stand der Tests \\u2014 also keinem.\"]}),`\n`,(0,n.jsx)(e.h2,{id:\"was-ehrlich-hier-bedeutet\",children:'Was \\u201Eehrlich\" hier bedeutet'}),`\n`,(0,n.jsx)(e.p,{children:\"Es lohnt sich, bei Tsais Einordnung einen Moment zu verweilen, denn sie ver\\xE4ndert, wor\\xFCber man eigentlich ver\\xE4rgert sein sollte.\"}),`\n`,(0,n.jsx)(e.p,{children:'Xcode 26 unterst\\xFCtzte macOS 10.13 nicht. Es erlaubte Ihnen, 10.13 einzutragen, und erzeugte Code, aber Apple testete nicht, ob sich die Frameworks im 26er-SDK auf einem Betriebssystem von 2017 korrekt verhielten. Entwickler, die solche Builds auslieferten, betrieben ihre eigene Qualit\\xE4tssicherung gegen ein von Apple aufgegebenes Betriebssystem, und meistens funktionierte es, weil die Frameworks per Design abw\\xE4rtskompatibel sind. Aber \\u201Emeistens\" leistete in diesem Satz echte Arbeit, und die L\\xFCcke zwischen SDK und Target wurde jedes Jahr gr\\xF6\\xDFer.'}),`\n`,(0,n.jsx)(e.p,{children:\"Xcode 27 macht den dokumentierten Bereich zum tats\\xE4chlichen Bereich. Das ist ein Verlust f\\xFCr Nutzer alter Macs und f\\xFCr die Entwickler, die sie bedient haben. Es ist kein Verlust von etwas, das Apple je versprochen h\\xE4tte.\"}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsx)(e.img,{alt:\"Zeitachse der App-Store-SDK-Anforderung und Folgen f\\xFCr das 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,n.jsx)(e.h2,{id:\"die-regulatorische-komplikation\",children:\"Die regulatorische Komplikation\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Noch ein Nebenstrang. Am 26. August \",(0,n.jsx)(e.a,{href:\"https://mjtsai.com/blog/2026/08/26/cyber-resilience-act/\",children:\"sammelte Tsai Kommentare\"}),\" zum EU Cyber Resilience Act, dessen Hauptpflichten am 11. Dezember 2027 in Kraft treten und der Sicherheitsupdates f\\xFCr mindestens f\\xFCnf Jahre vorschreibt. Ein Leser namens Frederik brachte die Wechselwirkung mit dem App Store zur Sprache:\"]}),`\n`,(0,n.jsxs)(e.blockquote,{children:[`\n`,(0,n.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,n.jsx)(e.p,{children:\"Das ist genau der Mechanismus, den dieser Artikel beschreibt. Der App Store kennt eine aktuelle Version pro App. Wird das SDK von Xcode 27 verpflichtend und steigt Ihre Untergrenze auf macOS 12, behalten Nutzer von macOS 11 f\\xFCr immer den letzten erhaltenen Build \\u2014 ohne Sicherheitsupdates. Ob der CRA das als Pflicht des Entwicklers, von Apple oder von niemandem behandelt, ist eine Frage f\\xFCr Juristen; die technische Tatsache ist, dass Apples Vertriebsmodell \\xFCber keinen Branch-Mechanismus verf\\xFCgt, und Xcode 27 wird das f\\xFCr deutlich mehr Entwickler sichtbar machen.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"migrations-checkliste\",children:\"Migrations-Checkliste\"}),`\n`,(0,n.jsx)(e.p,{children:\"F\\xFCr eine Mac-App mit altem Target, der Reihe nach:\"}),`\n`,(0,n.jsxs)(e.ol,{children:[`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Machen Sie eine Bestandsaufnahme Ihrer tats\\xE4chlichen Nutzer.\"}),\" Zeigt Ihre Analytics, dass niemand unter macOS 12 liegt, ist dies eine Einzeiler-\\xC4nderung plus Release Note. Die meisten Apps befinden sich in dieser Lage.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Setzen Sie das Deployment-Target bei jedem Target auf 12.0 (macOS) beziehungsweise 15.0 (iOS)\"}),\", einschlie\\xDFlich Extensions, Helpern und Tests. Bauen Sie mit der Xcode-27-Beta und beheben Sie jedes Auftreten der Diagnosemeldung.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Pr\\xFCfen Sie Abh\\xE4ngigkeiten\"}),\" auf \",(0,n.jsx)(e.code,{children:\"platforms\"}),\"-Deklarationen und Podspecs unterhalb der Untergrenze. Forken Sie, was n\\xF6tig ist.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Entscheiden Sie \\xFCber die Nachz\\xFCgler.\"}),\" M\\xFCssen Sie wirklich weiterhin an Nutzer von 10.13\\u201311.0 ausliefern, planen Sie einen finalen Build mit Xcode 26 vor April 2027, verteilen Sie ihn au\\xDFerhalb des App Store oder als eingefrorene Legacy-Version, und kommunizieren Sie das \\xF6ffentlich.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsx)(e.strong,{children:\"Liefern Sie die versteckte Einstellung nicht in Produktion aus\"}),\", es sei denn, Sie haben das Ergebnis selbst auf dem alten Betriebssystem getestet und akzeptieren, dass die Einstellung in der n\\xE4chsten Beta verschwinden kann.\"]}),`\n`,(0,n.jsxs)(e.li,{children:[(0,n.jsxs)(e.strong,{children:[\"Zielen Sie ausschlie\\xDFlich auf 27.0, pr\\xFCfen Sie \",(0,n.jsx)(e.code,{children:\"ARCHS\"}),\".\"]}),\" M\\xF6glicherweise haben Sie gerade unbemerkt x86_64 verloren.\"]}),`\n`]}),`\n`,(0,n.jsx)(e.h2,{id:\"h\\xE4ufige-probleme-beheben\",children:\"H\\xE4ufige Probleme beheben\"}),`\n`,(0,n.jsx)(e.h3,{id:\"der-fehler-bleibt-bestehen-obwohl-ich-das-target-der-app-angehoben-habe\",children:\"Der Fehler bleibt bestehen, obwohl ich das Target der App angehoben habe\"}),`\n`,(0,n.jsx)(e.p,{children:\"Ein anderes Target im Projekt hat noch den alten Wert. W\\xE4hlen Sie im Navigator das Projekt (nicht ein Target) aus, pr\\xFCfen Sie das Deployment-Target auf Projektebene, dann jedes Target und jedes Test-Bundle. Widgets und App-Extensions sind die \\xFCblichen \\xDCbelt\\xE4ter.\"}),`\n`,(0,n.jsx)(e.h3,{id:\"der-fehler-nennt-ein-paket-von-dem-ich-nicht-direkt-abh\\xE4nge\",children:\"Der Fehler nennt ein Paket, von dem ich nicht direkt abh\\xE4nge\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Eine transitive Abh\\xE4ngigkeit. Verwenden Sie \",(0,n.jsx)(e.code,{children:\"swift package show-dependencies\"}),\" (oder Xcodes Package Graph), um herauszufinden, wer sie hereinzieht, und aktualisieren Sie dann entweder das zwischengeschaltete Paket oder forken Sie das Blattpaket.\"]}),`\n`,(0,n.jsxs)(e.h3,{id:\"xcodebuild-von-der-kommandozeile-schl\\xE4gt-fehl-die-xcode-oberfl\\xE4che-baut-aber\",children:[(0,n.jsx)(e.code,{children:\"xcodebuild\"}),\" von der Kommandozeile schl\\xE4gt fehl, die Xcode-Oberfl\\xE4che baut aber\"]}),`\n`,(0,n.jsxs)(e.p,{children:[\"Pr\\xFCfen Sie, welche Toolchain die Kommandozeile verwendet: \",(0,n.jsx)(e.code,{children:\"xcode-select -p\"}),\". M\\xF6glicherweise nutzt die GUI Version 26 und die CLI Version 27, oder umgekehrt.\"]}),`\n`,(0,n.jsx)(e.h3,{id:\"ich-habe-das-versteckte-flag-gesetzt-und-es-hat-nichts-ge\\xE4ndert\",children:\"Ich habe das versteckte Flag gesetzt, und es hat nichts ge\\xE4ndert\"}),`\n`,(0,n.jsx)(e.p,{children:\"Das Flag muss dem Build-System auf der Ebene sichtbar sein, auf der die Pr\\xFCfung l\\xE4uft \\u2014 eine xcconfig-Datei auf Projektebene ist der sicherste Ort. Ist es nur auf einem Target gesetzt, melden die \\xFCbrigen Targets weiterhin den Fehler. Bleibt die Wirkung trotzdem aus, hat die Beta, die Sie nutzen, es m\\xF6glicherweise entfernt.\"}),`\n`,(0,n.jsx)(e.h3,{id:\"meine-ci-runner-laufen-auf-intel\",children:\"Meine CI-Runner laufen auf Intel\"}),`\n`,(0,n.jsx)(e.p,{children:\"Xcode 27 l\\xE4sst sich dort nicht installieren. Das ist eine Hardware-Migration, kein Konfigurationsproblem. Gehostete Anbieter sind schon vor einiger Zeit auf Apple-Silicon-Runner umgestiegen; selbstgehostete Intel Mac minis sind f\\xFCr Builds mit der aktuellen Toolchain nun am Ende ihrer Nutzungsdauer.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"faq\",children:\"FAQ\"}),`\n`,(0,n.jsx)(e.h3,{id:\"hebt-xcode-27-das-ios-minimum-an\",children:\"Hebt Xcode 27 das iOS-Minimum an?\"}),`\n`,(0,n.jsx)(e.p,{children:\"Auf dem Papier nicht \\u2014 Apples Tabelle nennt seit Xcode 26 iOS 15. Was sich \\xE4ndert, ist die Durchsetzung: Targets unter 15, die in Xcode 26 mit einer Warnung bauten, schlagen in Xcode 27 fehl.\"}),`\n`,(0,n.jsx)(e.h3,{id:\"was-ist-das-macos-minimum-in-xcode-27\",children:\"Was ist das macOS-Minimum in Xcode 27?\"}),`\n`,(0,n.jsx)(e.p,{children:\"macOS 12 Monterey, laut Apples Xcode-Support-Seite und den Release Notes zu Beta 6. Fr\\xFCher im Beta-Zyklus wurde der Hinweis als Big Sur gelesen; diese Lesart ist \\xFCberholt.\"}),`\n`,(0,n.jsx)(e.h3,{id:\"kann-ich-weiterhin-universal-apps-intel--apple-silicon-bauen\",children:\"Kann ich weiterhin Universal-Apps (Intel + Apple Silicon) bauen?\"}),`\n`,(0,n.jsx)(e.p,{children:\"Ja, von einem Apple-Silicon-Mac aus. Das macOS-27-SDK unterst\\xFCtzt Universal-R\\xFCckw\\xE4rtskompatibilit\\xE4t bis macOS 12 und neuer. Der einzige Fall, in dem x86_64 standardm\\xE4\\xDFig entf\\xE4llt, ist ein auf 27.0 oder neuer gesetztes Target.\"}),`\n`,(0,n.jsx)(e.h3,{id:\"wann-muss-ich-auf-xcode-27-umsteigen\",children:\"Wann muss ich auf Xcode 27 umsteigen?\"}),`\n`,(0,n.jsx)(e.p,{children:\"F\\xFCr die direkte Distribution: nie \\u2014 solange Sie einen Mac besitzen, auf dem Xcode 26 l\\xE4uft. F\\xFCr den App Store: sobald Apple das 27er-SDK verpflichtend macht, was nach dem etablierten Muster etwa April 2027 w\\xE4re. Apple hat dieses Datum nicht angek\\xFCndigt.\"}),`\n`,(0,n.jsx)(e.h3,{id:\"ist-die-versteckte-einstellung-sicher-f\\xFCr-app-store-builds\",children:\"Ist die versteckte Einstellung sicher f\\xFCr App-Store-Builds?\"}),`\n`,(0,n.jsx)(e.p,{children:\"Unbekannt. Niemand hat von einer damit gebauten Einreichung berichtet, und es handelt sich um ein undokumentiertes internes Flag. Behandeln Sie es als Werkzeug f\\xFCr lokale Builds und Legacy-Branches, nicht f\\xFCr Ihre Release-Pipeline.\"}),`\n`,(0,n.jsx)(e.h2,{id:\"fazit\",children:\"Fazit\"}),`\n`,(0,n.jsx)(e.p,{children:\"Die Deployment-Target-\\xC4nderung in Xcode 27 ist eine kleine Anpassung mit langem Nachhall. Apple hat die Untergrenze nicht stark angehoben \\u2014 eine Version bei macOS, keine bei iOS \\u2014, hat aber aufgeh\\xF6rt, so zu tun, als sei die Untergrenze optional, und ein Jahrzehnt unabh\\xE4ngiger Mac-Software wurde auf genau dieser Fiktion aufgebaut. Der Build-Fehler, den Sie heute bekommen, l\\xE4sst sich leicht beheben, wenn Ihre Nutzer auf modernen Systemen sind, und l\\xE4sst sich unm\\xF6glich sauber beheben, wenn nicht.\"}),`\n`,(0,n.jsxs)(e.p,{children:[\"Wissen Sie, wo Sie stehen. Liefern Sie noch an macOS 11 oder \\xE4lter aus, bleibt Ihnen als Fenster Xcode 26 auf einem Mac, der es noch ausf\\xFChrt, und dieses Fenster schlie\\xDFt sich f\\xFCr App-Store-Apps in etwa sieben Monaten. Falls nicht: Zahl anheben, Abh\\xE4ngigkeiten reparieren, \",(0,n.jsx)(e.code,{children:\"ARCHS\"}),\" pr\\xFCfen, falls Sie nur auf 27.0 zielen, und weitermachen \\u2014 Apple hat endlich dokumentiert, was ohnehin immer die Absicht war.\"]}),`\n`,(0,n.jsx)(e.p,{children:(0,n.jsxs)(e.em,{children:[\"Weiterf\\xFChrende Lekt\\xFCre: \",(0,n.jsx)(e.a,{href:\"/blog/rosetta-2-ending-macos-27-intel-app-audit-guide-2026\",children:\"Pr\\xFCfen Sie Ihre Intel-Apps, bevor Rosetta endet\"}),\", \",(0,n.jsx)(e.a,{href:\"/blog/macos-27-end-of-intel-mac-era-final-compatibility-list-2026\",children:\"die Intel-Kompatibilit\\xE4tsgrenze von macOS 27\"}),\", \",(0,n.jsx)(e.a,{href:\"/blog/macos-tahoe-developer-setup-npm-python-xcode-fix-guide-2025\",children:\"ein macOS-Tahoe-Entwicklersetup reparieren\"}),\", und \",(0,n.jsx)(e.a,{href:\"/blog/best-mac-developer-tools-2026\",children:\"die besten Mac-Entwicklertools dieses Jahr\"}),\".\"]})})]})}function o(i={}){let{wrapper:e}=i.components||{};return e?(0,n.jsx)(e,{...i,children:(0,n.jsx)(c,{...i})}):c(i)}return w(v);})();\n;return Component;","toc":[{"title":"Wichtigste Erkenntnisse","url":"#wichtigste-erkenntnisse","depth":2},{"title":"Die Zahlen, offiziell","url":"#die-zahlen-offiziell","depth":2},{"title":"Was Xcode 26 tatsächlich erlaubte","url":"#was-xcode-26-tatsächlich-erlaubte","depth":2},{"title":"Von der Warnung zum Fehler","url":"#von-der-warnung-zum-fehler","depth":2},{"title":"Was sich zwischen Juni und Beta 6 änderte","url":"#was-sich-zwischen-juni-und-beta-6-änderte","depth":2},{"title":"Wen es wirklich trifft","url":"#wen-es-wirklich-trifft","depth":2},{"title":"Mac-Apps, die weiterhin High Sierra bis Big Sur unterstützen","url":"#mac-apps-die-weiterhin-high-sierra-bis-big-sur-unterstützen","depth":3},{"title":"iOS-Apps und vor allem iOS-Bibliotheken unterhalb von 15","url":"#ios-apps-und-vor-allem-ios-bibliotheken-unterhalb-von-15","depth":3},{"title":"Wer ein altes Target tief in einer Abhängigkeit vergraben hat","url":"#wer-ein-altes-target-tief-in-einer-abhängigkeit-vergraben-hat","depth":3},{"title":"Die versteckte Hintertür","url":"#die-versteckte-hintertür","depth":2},{"title":"Die eigentliche Frist ist April 2027","url":"#die-eigentliche-frist-ist-april-2027","depth":2},{"title":"Xcode 26 behalten – und warum das aufhört zu funktionieren","url":"#xcode-26-behalten--und-warum-das-aufhört-zu-funktionieren","depth":2},{"title":"Xcode 27 selbst läuft nur auf Apple Silicon","url":"#xcode-27-selbst-läuft-nur-auf-apple-silicon","depth":2},{"title":"Die andere Intel-Änderung: Universal ist ab 27.0 nicht mehr Standard","url":"#die-andere-intel-änderung-universal-ist-ab-270-nicht-mehr-standard","depth":2},{"title":"Eine dritte Untergrenze, die niemand erwähnt: libc++ bei 11.0","url":"#eine-dritte-untergrenze-die-niemand-erwähnt-libc-bei-110","depth":2},{"title":"Die Lösung: Abhängigkeiten","url":"#die-lösung-abhängigkeiten","depth":2},{"title":"Was „ehrlich\" hier bedeutet","url":"#was-ehrlich-hier-bedeutet","depth":2},{"title":"Die regulatorische Komplikation","url":"#die-regulatorische-komplikation","depth":2},{"title":"Migrations-Checkliste","url":"#migrations-checkliste","depth":2},{"title":"Häufige Probleme beheben","url":"#häufige-probleme-beheben","depth":2},{"title":"Der Fehler bleibt bestehen, obwohl ich das Target der App angehoben habe","url":"#der-fehler-bleibt-bestehen-obwohl-ich-das-target-der-app-angehoben-habe","depth":3},{"title":"Der Fehler nennt ein Paket, von dem ich nicht direkt abhänge","url":"#der-fehler-nennt-ein-paket-von-dem-ich-nicht-direkt-abhänge","depth":3},{"title":"xcodebuild von der Kommandozeile schlägt fehl, die Xcode-Oberfläche baut aber","url":"#xcodebuild-von-der-kommandozeile-schlägt-fehl-die-xcode-oberfläche-baut-aber","depth":3},{"title":"Ich habe das versteckte Flag gesetzt, und es hat nichts geändert","url":"#ich-habe-das-versteckte-flag-gesetzt-und-es-hat-nichts-geändert","depth":3},{"title":"Meine CI-Runner laufen auf Intel","url":"#meine-ci-runner-laufen-auf-intel","depth":3},{"title":"FAQ","url":"#faq","depth":2},{"title":"Hebt Xcode 27 das iOS-Minimum an?","url":"#hebt-xcode-27-das-ios-minimum-an","depth":3},{"title":"Was ist das macOS-Minimum in Xcode 27?","url":"#was-ist-das-macos-minimum-in-xcode-27","depth":3},{"title":"Kann ich weiterhin Universal-Apps (Intel + Apple Silicon) bauen?","url":"#kann-ich-weiterhin-universal-apps-intel--apple-silicon-bauen","depth":3},{"title":"Wann muss ich auf Xcode 27 umsteigen?","url":"#wann-muss-ich-auf-xcode-27-umsteigen","depth":3},{"title":"Ist die versteckte Einstellung sicher für App-Store-Builds?","url":"#ist-die-versteckte-einstellung-sicher-für-app-store-builds","depth":3},{"title":"Fazit","url":"#fazit","depth":2}],"estimatedTime":20}