Release Notes zu iOS 27.0: Deprecations, Breaking Changes und Fixes
iOS 27.0 und iPadOS 27.0 sind am Montag, dem 14. September 2026, als Build 24A437 erschienen, demselben Build, den Apple am 11. September als RC veröffentlicht hatte; das SDK in Xcode 27 (27A266a) kam am selben Tag, und App Store Connect nimmt seit demselben Datum Builds mit den 27.0-GA-SDKs an.13 Drei Build-Nummern beantworten jetzt die Frage „welches iOS 27.0?“: Das Gerät läuft mit 24A437, das SDK in Xcode 27 meldet sich als 24A430, und die Simulator-Runtime ist 24A434.4 Die Notes umfassen 93 Bereiche mit 65 neuen Funktionen, 197 behobenen Problemen, 23 bekannten Problemen und 11 Deprecations; für bestehenden Code zählen vor allem die Änderungen, die in dem Moment greifen, in dem Sie mit dem 27.0 SDK bauen, die Deprecations, die die Header des SDKs selbst bestätigen, und ein Foundation-Fix, den eine einzige Binärdatei auf einer iOS-26.5- und einer iOS-27.0-Runtime reproduziert.24
Das Wichtigste in Kürze
- Builds. Gerät 24A437, SDK 24A430, Simulator-Runtime 24A434; RC und GA teilen sich den Geräte-Build, und die SDK-Nummer ist nicht die Gerätenummer, was zählt, sobald ein Bug-Report nach einer fragt. iOS 27.0.1 (24A446) folgte am 28. September mit drei Fehlerbehebungen für Geräte und ohne Release Notes für Entwickler.149
- Linked-on-27-Verhalten. 12 Kategorien von Änderungen, insgesamt 23 Einträge, verändern das Verhalten einer App in dem Moment, in dem Sie sie mit dem 27.0 SDK bauen: die Launch-Screen-Pflicht, die Scene-Lifecycle-Vorgabe, ein
TabView, das bei einer versteckten Auswahl abstürzt, Systemtextauswahl auf selektierbaremText, Trait-Vererbung für präsentierte View Controller, die Inline-Scope-Bar, externe Display-Szenen, die nicht mehr automatisch angeboten werden, in Sheets und Popovers zurückgesetzte Control-Modifier, die Safe-Area-Rechnung voncontainerRelativeFrame, die Statusleisten-Accessoren, iPad-Resize-Regeln unterUIRequiresFullScreenund zwei kleinere SwiftUI-Verschiebungen bei Menüs und beim Scroll-to-Top.2 - Neu kompilieren oder abstürzen.
HitchTimeMetric.ratioin MetricKit misst jetzt in einer neuen EinheitHitchTimeRatio, undScrollHitchTimeMetrichat die Swift-API verlassen; Apple rät, mit dem neuesten SDK neu zu kompilieren, um Abstürze beim Start und einen Missing-Symbol-Crash zu vermeiden, und das SDK-Interface bestätigt, dass der Typ weg ist.24 - 11 Deprecations, größtenteils stumm.
canOpenURL:(ios(3.0, 27.0)im Header), On Demand Resources (ios(9.0, 27.0)),PHAssetResource.originalFilename(ios(9, 27)), die ursprünglichen MetricKit-APIs (markiert alsAPI_TO_BE_DEPRECATED, also eine weiche Deprecation),ScrollHitchTimeMetric,FileDocument,calendar.deleteEvents, umbenannt incalendar.deleteEvent, eine PencilKit-Umbenennung, die Scene-Vorgabe, AirPort Utility und ein Sprachhinweis zu Weather Highlights. Die drei harten warnen nur bei einem Deployment-Target von 27.0; bei 17.0 oder 26.0 kompiliert dieselbe Datei ohne Befund.24 - Zwei Foundation-Änderungen, getestet.
+[NSURL URLWithString:]kodiert ein gültiges%20nicht mehr doppelt, wenn es an anderer Stelle im String ein Leerzeichen escapen muss: Eine einzige Simulator-Binärdatei liefert%2520auf einer iOS-26.5-Runtime und%20auf der iOS-27.0-Runtime, und der Mac-Build entspricht der alten Seite, der Fix folgt also dem Betriebssystem, nicht dem SDK. Die Kürzung vonvolumeAvailableCapacityKeyauf drei signifikante Stellen zeigt sich im Simulator nicht, der exakt 55.177.985 Blöcke meldet.24
Update, 17. September: Die Notes zur 27.2-Beta
Apple hat mit Stand 17. September keine 27.1-Beta veröffentlicht und die iOS- und iPadOS-27.2-Beta (24B5084k) auf den 16. September datiert, zusammen mit der Xcode-27.2-Beta (27B5019j), deren Notes sagen, 27.1 sei das Release, das das iPhone-Duo-SDK „later this month“ (später in diesem Monat) bringt.7 Die Notes zur iOS- und iPadOS-27.2-Beta sind kurz und ändern unten eine einzige Zeile: Zwei der bekannten Probleme zu StoreKit-Tests in der Liste dieses Beitrags, 184155259 und 184255116, stehen jetzt unter Resolved Issues. Die Notes tragen keine Überschrift Deprecations, keine Linked-on-27-Verhaltenseinträge und ein einziges New Feature, unter App Tracking Transparency, wo AppTrackingTransparency „now supports an alternative expanded prompt and re-prompting on a yearly basis for EU users. The alternative prompt is required for users in France, Germany, Italy, Poland, and Romania.“ (jetzt eine alternative, erweiterte Abfrage und eine jährliche erneute Abfrage für Benutzer in der EU unterstützt; die alternative Abfrage ist für Benutzer in Frankreich, Deutschland, Italien, Polen und Rumänien Pflicht.)7 Der Rest ist StoreKit Testing in Xcode (drei Fixes rund um SKTestSession und ein bekanntes Problem zu Abo-Bundles), ein bekanntes Problem in Health und eines bei den Kurzbefehlen. Die 27.0-Deprecations, die Linked-on-27-Verhaltensänderungen und der NSURL-Fix in diesem Beitrag bleiben wie geschrieben bestehen.7
Update, 19. September: Ein iOS-27.1-SDK existiert, seine Release Notes noch nicht
Xcode 27.1 Beta (27A9269), in Apples Releases-Feed auf Freitag, den 18. September datiert, trägt das erste iOS-27.1-SDK: Sein Overview lautet „Xcode 27.1 beta includes Swift 6.4 and SDKs for iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27.“ (die Xcode 27.1 Beta enthält Swift 6.4 und die SDKs für iOS 27.1, iPadOS 27, tvOS 27, watchOS 27, macOS 27 und visionOS 27)8 Eine iOS-27.1-Seite, an der man es lesen könnte, gibt es nicht. Der Index der iOS- und iPadOS-Release-Notes führt am 19. September „iOS & iPadOS 27 Release Notes“ und „iOS & iPadOS 27.2 Beta Release Notes“ und nichts zu 27.1, sodass sich der Inhalt des 27.1-SDKs nur aus den Xcode-Notes und aus Apples API-Seiten ergibt, die jetzt fünf der iPhone-Duo-APIs unter iOS 27.1 als Beta führen; mein Duo-Entwicklerbeitrag nennt sie.8 App Store Connect nimmt die Builds an: „You can now submit apps built with Xcode 27.1 beta using the SDK for iOS 27.1 beta or iPadOS 27.1 beta for internal and external testing.“ (Apps, die mit der Xcode 27.1 Beta und dem SDK für iOS 27.1 Beta oder iPadOS 27.1 Beta gebaut wurden, lassen sich jetzt für interne und externe Tests einreichen.) Das „iPadOS 27“ der Overview und das „iPadOS 27.1 beta“ von App Store Connect stimmen nicht überein, und ich zitiere beides, statt mich für eines zu entscheiden. Und Apples News-Beitrag vom 16. September sagt, wofür 27.1 da ist: „When iPhone Duo becomes available on October 23, it will run iOS 27.1. This version builds on the foundation of iOS 27 and introduces features that were purpose-built for the new foldable design.“ (beim Verkaufsstart am 23. Oktober läuft das iPhone Duo mit iOS 27.1; die Version baut auf iOS 27 auf und bringt Funktionen, die eigens für das neue faltbare Design entwickelt wurden)8 Die Notes zur Xcode 27.1 Beta haben drei Abschnitte, Mac Catalyst, Previews und Simulator, und keiner berührt die 27.0-Deprecations, die Verhaltensänderungen beim Linken gegen 27 oder den NSURL-Fix in diesem Beitrag; der im Update oben angeführte Satz aus den 27.2-Beta-Notes wurde auf Apples Seite zwischen dem 17. und dem 19. September durch einen Hinweis mit Download-Link ersetzt, „Download Xcode 27.1 beta to get the iOS SDK and simulator support for iPhone Duo.“8
Der 21. September brachte die zweiten 27.2-Betas: iOS und iPadOS 27.2 Beta 2 (24B5089g), dazu macOS 27.2 Beta 2 (26B5091g), tvOS 27.2 Beta 2 (24K5093g), visionOS 27.2 Beta 2 (24N5093f) und watchOS 27.2 Beta 2 (24S5091f), und an diesem Tag kein neues Xcode. (Xcode 27.2 Beta 2, 27B5028f, folgte am 28. September; der Beitrag zu 27.2 liest dessen Notes.9) Die iOS- und iPadOS-Notes heißen jetzt „iOS & iPadOS 27.2 Beta 2 Release Notes“, führen aber dieselben Abschnitte und dieselben Radar-Nummern wie die der ersten Beta, und der Index der Release Notes führt zu 27.1 weiterhin nichts.8
Update, 1. Oktober: iOS 27.0.1 ist erschienen, ohne Notes für Entwickler
Apples Releases-Feed datiert iOS 27.0.1 und iPadOS 27.0.1, Build 24A446, auf Montag, den 28. September, am selben Tag wie macOS 27.0.1 (26A434), visionOS 27.0.1 (24M372) und watchOS 27.0.1 (24R365), dazu iPadOS 26.7.1 (23H30) für die ältere Versionslinie.9 Einen Eintrag zu iOS 26.7.1 enthält der Feed nicht, obwohl Apples Sicherheitsseite „iOS 26.7.1 and iPadOS 26.7.1“ gemeinsam führt.910 Eine Seite mit Release Notes für Entwickler gibt es zu 27.0.1 nicht. Der am 1. Oktober abgerufene Index der iOS- und iPadOS-Release-Notes führt in der 27er-Linie dieselben zwei Einträge wie zuvor, „iOS & iPadOS 27 Release Notes“ und „iOS & iPadOS 27.2 Beta 2 Release Notes“. Der Text der 27.0-Seite ist identisch mit der Kopie, die ich am 26. September beim Schreiben des Beitrags zu 27.2 gespeichert habe, und eine erneute Zählung ergibt dieselben 65 neuen Funktionen, 197 behobenen Probleme, 23 bekannten Probleme und 11 Deprecations wie die Zählung vom 15. September. Die Zahlen, die Deprecations und die Linked-on-27-Liste in diesem Beitrag haben sich mit dem Update also nicht bewegt.9
Was in 27.0.1 steckt, stammt von Apples Seite für Endkunden: „This update provides bug fixes for your iPhone, including fixes for the following issues“ (dieses Update bringt Fehlerbehebungen für Ihr iPhone, darunter Korrekturen für folgende Probleme), gefolgt von drei Punkten. iPhone 18 Pro und iPhone 18 Pro Max „may unexpectedly restart when Face ID fails to authenticate“ (können unerwartet neu starten, wenn die Authentifizierung per Face ID fehlschlägt); „A color artifact may appear on photos captured at 2x under certain lighting conditions at f/1.48 on a small number of iPhone 18 Pro and iPhone 18 Pro Max devices“ (bei wenigen Geräten dieser beiden Modelle kann auf Fotos, die bei bestimmten Lichtverhältnissen mit 2x und f/1.48 aufgenommen wurden, ein Farbartefakt erscheinen); und „Opening Notification Center and Control Center simultaneously may cause the touchscreen to become unresponsive.“ (das gleichzeitige Öffnen von Mitteilungszentrale und Kontrollzentrum kann dazu führen, dass der Touchscreen nicht mehr reagiert)10 Keiner der drei Punkte ist eine API-Änderung, und keiner entspricht einem Known Issue in den Entwickler-Notes zu 27.0. Apples Sicherheitsseite führt das Update mit dem Satz „This update has no published CVE entries.“ (zu diesem Update gibt es keine veröffentlichten CVE-Einträge)10
Der Sicherheitsfix dieses Tages ging an die ältere Linie. Apples Seite zu iOS 26.7.1 und iPadOS 26.7.1 führt einen CoreGraphics-Eintrag, CVE-2026-86950, einen Schreibzugriff außerhalb der Grenzen, bei dem „Processing a maliciously crafted file may lead to arbitrary code execution“ (das Verarbeiten einer böswillig präparierten Datei zur Ausführung beliebigen Codes führen kann), und fügt hinzu: „Apple is aware of a report that this issue may have been exploited in an extremely sophisticated attack against specific targeted individuals on versions of iOS before iOS 27.“ (Apple ist ein Bericht bekannt, wonach dieses Problem in Versionen vor iOS 27 bei einem äußerst raffinierten Angriff auf gezielt ausgewählte Personen ausgenutzt worden sein könnte.)10 Für Entwickler betrifft das eher die Testmatrix als den Code. Ein Bug-Report von einem iOS-27-Gerät hat jetzt einen Build mehr zu nennen, 24A446, neben 24A437, 24A430 und 24A434 in der Tabelle unten, und der einzige Xcode-Eintrag im Feed an diesem Tag ist Xcode 27.2 Beta 2 (27B5028f). Ein Xcode 27.0.1 gibt es nicht, sodass das SDK in Xcode 27 weiterhin 24A430 ist.9
Welcher Build ist welcher?
| Wo | Build | Beleg |
|---|---|---|
| Gerät, iOS 27.0 / iPadOS 27.0 | 24A437 | Releases-Feed, Mon, Sep 14, 2026; „iOS 27.0 RC (24A437)“ am Fri, Sep 111 |
| SDK in Xcode 27 (27A266a) | 24A430 | iPhoneOS.sdk/System/Library/CoreServices/SystemVersion.plist, ProductBuildVersion4 |
| iOS 27.0 Simulator-Runtime | 24A434 | xcrun simctl list runtimes gibt „iOS 27.0 (27.0 - 24A434)“ aus4 |
| Gerät, iOS 27.0.1 / iPadOS 27.0.1 | 24A446 | Releases-Feed, Mon, Sep 28, 20269 |
| macOS 27.0 | 26A428 | Releases-Feed, Mon, Sep 141 |
| App Store Connect | 27.0-GA-SDKs werden angenommen | „You can now upload apps built with Xcode 27 using the SDK for iOS 27.0, iPadOS 27.0, macOS 27.0, tvOS 27.0, visionOS 27.0, and watchOS 27.0 for the App Store, and for internal and external testing through TestFlight.“ (Apps, die mit Xcode 27 und den 27.0-SDKs gebaut wurden, können jetzt für den App Store und für TestFlight-Tests hochgeladen werden.) 14. September; Uploads mit den RC-SDKs werden seit dem 9. September angenommen3 |
Die drei Nummern sind kein Versehen. Das SDK ist ein Schnappschuss aus Headern und Interfaces, die Simulator-Runtime ist ein separater Cryptex, den Apple an Xcode ausliefert, und der Geräte-Build ist das, was die Leute tatsächlich ausführen; eine Reproduktion, die „iOS 27.0“ sagt, ohne eine dieser Nummern zu nennen, lässt genau die Zahl weg, die entscheidet, ob ein Fix gegriffen hat.4
Die Notes selbst beginnen mit zwei Sätzen zum Umfang, „The iOS & iPadOS 27 SDK provides support to develop apps for iPhone and iPad running iOS & iPadOS 27. The SDK comes bundled with Xcode 27, available from the Mac App Store“ (das SDK für iOS und iPadOS 27 dient der App-Entwicklung für iPhone und iPad mit iOS und iPadOS 27 und liegt Xcode 27 aus dem Mac App Store bei), und arbeiten dann 93 Bereiche ab. Zählt man die Listenpunkte unter jeder Überschrift, ergeben sich 65 neue Funktionen, 197 behobene Probleme, 23 bekannte Probleme und 11 Deprecations; allein Siri kommt auf 38 behobene und acht bekannte, SwiftUI auf 23 neue und 13 behobene, UIKit auf neun neue und 13 behobene.2 Der Beitrag zu Xcode 27 behandelt die Toolchain-Seite, der Beitrag, den Sie gerade lesen, die Seite von Betriebssystem und SDK.
Was ändert sich in dem Moment, in dem Sie mit dem 27.0 SDK bauen?
Apple koppelt Verhaltensänderungen an das SDK, gegen das eine App gelinkt ist; für den Build, den Sie bereits ausgeliefert haben, passiert also nichts, und alle greifen beim ersten Archiv aus Xcode 27. Zu jedem Punkt die jeweilige Note im Wortlaut:2
- Launch Screen. „iOS and iPadOS apps built with the 27.0 SDK or later are required to include a launch screen. Your app’s
Info.plistmust contain one of the following keys:UILaunchStoryboardName,UILaunchStoryboards,UILaunchScreen, orUILaunchScreens. Apps that don’t include a launch screen are rejected when the App Store begins accepting apps built with the 27.0 SDK.“ (Apps, die mit dem 27.0 SDK oder neuer gebaut sind, brauchen einen Launch Screen; dieInfo.plistmuss einen der vier genannten Schlüssel enthalten, sonst lehnt der App Store die App ab, sobald er Builds mit dem 27.0 SDK annimmt.) App Store Connect nahm App-Store-Uploads mit den 27.0-RC-SDKs ab dem 9. September und mit den GA-SDKs ab dem 14. September an; keiner der beiden Einträge sagt, wann die Ablehnungen begannen, lesen Sie beide also als Upload-Daten, nicht als Stichtag der Durchsetzung.3 Mein Beitrag zum Launch Screen prüft eine generierte plist. - Scene-Lifecycle. Unter den UIKit-Deprecations: „Apps built with the latest SDK must adopt the scene-based life cycle or they fail to launch.“ (Apps, die mit dem neuesten SDK gebaut sind, müssen den szenenbasierten Lebenszyklus übernehmen, sonst starten sie nicht.) Der Beitrag zur Scene-Vorgabe enthält die Migration.
TabView-Auswahl. „In apps built with the iOS 27.0 and iPadOS 27.0 SDKs, aTabViewenforces that its selection is set to a visible tab.TabViewmight crash when its selection is set to a hidden or otherwise unavailable tab.“ (EinTabViewerzwingt jetzt, dass die Auswahl auf einen sichtbaren Tab zeigt, und kann abstürzen, wenn sie auf einen versteckten oder anderweitig nicht verfügbaren Tab zeigt.) Eine ausUserDefaultswiederhergestellte Auswahl, die einen später versteckten Tab benennt, ist das Muster, nach dem Sie suchen sollten.- Selektierbarer
Text. „In apps built with the iOS 27.0 and iPadOS 27.0 SDKs, aTextview with.textSelection(.enabled)applied now supports user-interactive selection using the system text selection UI.“ (EineText-View mit.textSelection(.enabled)nutzt jetzt die Textauswahl-Oberfläche des Systems.) Apple ergänzt, solche Views „might include additional gestures for system text selection interactions“ (könnten zusätzliche Gesten für die Systemtextauswahl mitbringen) und verweist eigene Gesten auf.highPriorityGesture(); derselbe Build lässt außerdemTextRendererauf selektierbaremTextfunktionieren. - Präsentierte View Controller. „In apps built with the iOS 27.0 SDK, a presented view controller inherits its trait collection by walking up its view’s superview chain through the intermediate views of the presentation, rather than jumping directly to the presentation controller.“ (Ein präsentierter View Controller erbt seine Trait Collection jetzt entlang der Superview-Kette durch die Zwischen-Views der Präsentation, statt direkt zum Presentation Controller zu springen.) Eigene
UIPresentationController-Subklassen, die Traits setzen, sind die Kandidaten für einen erneuten Test. - Scope-Bar. „In apps built with the iOS 27.0 SDK, when
UISearchControlleruses center search-bar placement, the scope bar appears inline on the same row as the search field rather than on a separate row beneath it.“ (Bei zentrierter Suchleiste imUISearchControllererscheint die Scope-Bar in derselben Zeile wie das Suchfeld, nicht mehr in einer eigenen Zeile darunter.) - Externe Displays. „In apps built with the iOS 27.0 SDK,
windowExternalDisplayNonInteractivescenes are no longer offered automatically by the system. UseUIViewController.registerSceneAccessory(_:)with aUISceneAccessory.externalNonInteractiveinstance to display non-interactive content on external display scenes.“ (Das System bietetwindowExternalDisplayNonInteractive-Szenen nicht mehr automatisch an; für nicht interaktive Inhalte auf externen Displays dientUIViewController.registerSceneAccessory(_:)mit einerUISceneAccessory.externalNonInteractive-Instanz.) SwiftUI bekommt dieselbe Tür über.sceneAccessorymit einemExternalNonInteractiveAccessory. - Sheets und Popovers. Als behoben gelistet: „In apps built with the 27.0 SDKs, the
controlSize,buttonSizing,buttonRepeatBehavior,menuIndicatorVisibility, andButtonBorderShapeenvironment values are now reset to their default values in sheets and popovers.“ (Diese Environment-Werte werden in Sheets und Popovers jetzt auf ihre Standardwerte zurückgesetzt.) Hat ein Sheet bisher.controlSize(.large)von seinem Presenter geerbt, tut es das nicht mehr. containerRelativeFrame. Ebenfalls für 27.0-SDK-Builds behoben: Es „incorrectly accounts for safe-area insets on aScrollView’s non-scrollable axis, causing the calculated scrollable content size to be too small“ (rechnet Safe-Area-Insets auf der nicht scrollbaren Achse einesScrollViewfälschlich ein, sodass die berechnete scrollbare Inhaltsgröße zu klein ausfällt), ein horizontalesScrollViewmitcontainerRelativeFrame(.vertical)ändert also seine Größe.- Statusleisten-Accessoren. Für 27.0-SDK-Builds behoben: Die veralteten Statusleisten-Accessoren auf
UIApplication, laut NotestatusBarFrame,statusBarOrientation,statusBarStyleundisStatusBarHidden, „might return NaN or null values“ (könnten NaN oder Null-Werte zurückgeben). - Größenänderung und Ausrichtung auf iPad und bei iPhone-Synchronisierung. Neun behobene UIKit-Probleme beschreiben, was eine App „built with the iOS 27 SDK“ (mit dem iOS 27 SDK gebaut) jetzt sehen sollte, wenn ihre Szene verbunden wird oder der Benutzer ihr Fenster vergrößert oder dreht:
UIRequiresFullScreen-Apps bekommen „a discrete change to a newUIScreenwith an updated bounds“ (einen diskreten Wechsel zu einem neuenUIScreenmit aktualisierten Bounds) statt fortlaufender Resize-Updates, die Bounds vonUIScreen.main„should remain fixed once the screen connects“ (sollten fest bleiben, sobald der Bildschirm verbunden ist), und „supported interface orientations should no longer be a condition for continuous resizability“ (unterstützte Ausrichtungen sollten keine Bedingung mehr für stufenlose Größenänderung sein). - Menüs und Scroll-to-Top. Zwei kleinere SwiftUI-Verschiebungen: „In apps built with the 27.0 SDKs, a
LabeledContentview used inside aMenumaps its value to the platform menu item’s subtitle“ (einLabeledContentin einemMenubildet seinen Wert auf den Untertitel des Plattform-Menüeintrags ab), und, als behoben gelistet, „In apps built with the 2027 SDKs, tapping the status bar to scroll aScrollViewto its top correctly updates a boundscrollPosition“ (ein Tipp auf die Statusleiste, der einScrollViewnach oben scrollt, aktualisiert jetzt korrekt eine gebundenescrollPosition). Ein Menü-Label, das aus Layout-Gründen einen Wert trug, bekommt jetzt einen Untertitel, und einscrollPosition-Binding, das nach dem Tipp auf die Statusleiste veraltet las, wird jetzt aktualisiert.
Diese 12 Kategorien decken die Einträge ab, die bestehendes Verhalten ändern. Neue Fähigkeiten hinter derselben SDK-Schwelle, etwa das Protokoll ReadableDocument, das darauf aufbauende Protokoll Document und UIScene.extendStateRestoration, stehen in den späteren Abschnitten; die Kategorie der externen Displays führt die UIKit-Entfernung zusammen mit ihrem SwiftUI-Ersatz auf.
Zwei MetricKit-Einträge gehören hierher, obwohl es bei ihnen ums Neukompilieren geht und nicht ums Linken. „HitchTimeMetric.ratio and SignpostIntervalMetric.hitchTimeRatio now use the new HitchTimeRatio type, a Dimension subclass that expresses hitch time as a ratio of milliseconds hitching per second of tracked duration. Recompile your app with the latest SDK to pick up this type change and avoid any crashes on launch.“ (Beide Properties verwenden jetzt den neuen Typ HitchTimeRatio, eine Dimension-Subklasse, die Ruckelzeit als Millisekunden pro Sekunde erfasster Dauer ausdrückt; kompilieren Sie mit dem neuesten SDK neu, um die Typänderung zu übernehmen und Abstürze beim Start zu vermeiden.) Und: „The scrollHitchTime(_:) case of MetricResult and the ScrollHitchTimeMetric type are no longer part of the new Swift MetricKit API, and MetricReport values no longer contain scroll hitch entries. Use the hitchTime(_:) case and HitchTimeMetric instead, which report per-app animation hitch time. Recompile your app with the latest SDK to avoid a missing symbol crash if it references ScrollHitchTimeMetric or scrollHitchTime(_:).“ (scrollHitchTime(_:) und ScrollHitchTimeMetric gehören nicht mehr zur neuen Swift-API von MetricKit, und MetricReport-Werte enthalten keine Scroll-Hitch-Einträge mehr; verwenden Sie stattdessen hitchTime(_:) und HitchTimeMetric und kompilieren Sie mit dem neuesten SDK neu, um einen Missing-Symbol-Crash zu vermeiden.)2 Im Swift-Interface von MetricKit im iOS 27 SDK kommen ScrollHitchTimeMetric und scrollHitchTime null Mal vor und HitchTimeRatio vier Mal; eine gegen das Beta-SDK gebaute Binärdatei, die einen der beiden Namen verwendet hat, referenziert also ein Symbol, das das GA-Interface nicht exportiert.4 Mein Beitrag zu MetricKit beschreibt die neue API aus der Juni-Beta.
Welche APIs sind in 27.0 als veraltet markiert?
Die Notes führen 11 Deprecations auf. Eine Deprecation in einer Release Note ist ein Satz; eine Deprecation im SDK ist eine Availability-Annotation, die der Compiler liest, und beide sagen nicht immer dasselbe. Ich habe jeden Eintrag mit den Headern und Swift-Interfaces im iPhoneOS 27.0 SDK von Xcode 27 abgeglichen:24
| Eintrag in den Notes | Was das SDK sagt |
|---|---|
„canOpenURL: is deprecated. Attempt to open the URL and handle any failure instead of validating it first.“ (canOpenURL: ist veraltet; öffnen Sie die URL direkt und behandeln Sie Fehler, statt vorher zu prüfen.) |
API_DEPRECATED("Prefer attempting to open URLs and handling any failures", ios(3.0, 27.0), visionos(1.0, 27.0), tvos(9.0, 27.0)) in UIApplication.h; der Beitrag zu canOpenURL enthält das Ersatzmuster |
„On Demand Resources and the NSBundleResourceRequest API are deprecated. Use Background Assets instead.“ (On Demand Resources und die NSBundleResourceRequest-API sind veraltet; verwenden Sie stattdessen Background Assets.) |
API_DEPRECATED("Use Background Assets instead.", ios(9.0, 27.0), watchos(2.0, 27.0), tvos(9.0, 27.0)) auf der Klasse, ihren Preservation-Priority-Methoden und ihren Notification- und Prioritätskonstanten; der Beitrag zu ODR beziffert die Migration, und die FAQ-Antwort „Was Sie bekommen, ist eine Compiler-Warnung“ trägt jetzt die Einschränkung zum Deployment-Target aus dem nächsten Abschnitt |
„The originalFilename property on PHAssetResource is incorrectly marked as non-nullable, which misrepresents the property value; a new, nullable filename property is available as a replacement.“ (originalFilename auf PHAssetResource ist fälschlich als non-nullable markiert; als Ersatz gibt es die neue, nullable Property filename.) |
originalFilename ist API_DEPRECATED("Use filename instead", ios(9, 27), macos(10.15, 27), tvos(10, 27), visionos(1, 27)); filename ist nullable und API_AVAILABLE(macos(27), ios(27), tvos(27), visionos(27)) |
Die ursprünglichen MetricKit-APIs, MXMetricManager, MXMetricManagerSubscriber, MXMetricPayload und MXDiagnosticPayload, „are no longer recommended for new adoption. Use MetricManager instead.“ (werden für neue Projekte nicht mehr empfohlen; verwenden Sie stattdessen MetricManager.) |
API_DEPRECATED("Use MetricManager instead.", ios(13.0, API_TO_BE_DEPRECATED), macos(12.0, API_TO_BE_DEPRECATED)) auf MXMetricManager: eine weiche Deprecation ohne Version, also heute keine Warnung. Apples Referenzseite zur Klasse führt sie auf jeder Plattform als in 27.0 veraltet, Dokumentation und Header widersprechen sich also; mein Beitrag zu MetricKit hatte die Version der Seite übernommen und trägt jetzt eine datierte Anmerkung zu dieser Abweichung6 |
ScrollHitchTimeMetric und scrollHitchTime(_:) „are no longer part of the new Swift MetricKit API“ (gehören nicht mehr zur neuen Swift-API von MetricKit) |
Null Vorkommen beider Namen in MetricKit.swiftmodule; nicht veraltet, sondern entfernt |
„The FileDocument protocol is deprecated. Use ReadableDocument for read-only documents or Document for documents that support reading and writing.“ (Das Protokoll FileDocument ist veraltet; verwenden Sie ReadableDocument für schreibgeschützte Dokumente oder Document für lesende und schreibende.) |
FileDocument: deprecated: 100000.0, message: "Conform your type to Document instead."; ReferenceFileDocument: "Use Document protocol instead."; beide weich, und Document ist @available(iOS 27.0, macOS 27.0, visionOS 27.0, *), der Ersatz braucht also ein Minimum von 27 |
„The calendar.deleteEvents schema has been renamed to calendar.deleteEvent.“ (Das Schema calendar.deleteEvents wurde in calendar.deleteEvent umbenannt.) |
deleteEvents kommt in AppIntents.swiftmodule null Mal vor; deleteEvent: some AppSchemaIntent ist da. Eine Umbenennung ohne Alias ist für jeden auf dem alten Namen ein Compile-Fehler |
„__PKStrokeRenderState has been renamed to PKStrokeRenderStateReference, with PKStrokeRenderStateReference.init(…) replacing PKStrokeRenderState.asObjCRenderState().“ (__PKStrokeRenderState heißt jetzt PKStrokeRenderStateReference, und PKStrokeRenderStateReference.init(…) ersetzt PKStrokeRenderState.asObjCRenderState().) |
PKStrokeRenderState.h deklariert @interface PKStrokeRenderState unter API_AVAILABLE(ios(27.0), macos(27.0), visionos(27.0)) mit NS_SWIFT_NAME(PKStrokeRenderStateReference); das Swift-Interface kennt überhaupt kein asObjCRenderState; der von Apple genannte Ersatz ist das init(_ swiftValue: PKStroke.RenderState) der Referenzklasse, PKStrokeRenderStateReference(state) ist also die neue Aufrufform, und der alte Aufruf kompiliert nicht |
| „Apps built with the latest SDK must adopt the scene-based life cycle or they fail to launch.“ (Apps, die mit dem neuesten SDK gebaut sind, müssen den szenenbasierten Lebenszyklus übernehmen, sonst starten sie nicht.) | Keine Annotation, sondern ein Startfehler. Siehe den Beitrag zur Scene-Vorgabe |
| „AirPort Utility will no longer be available for new downloads from the App Store.“ (AirPort Utility steht im App Store nicht mehr zum Neu-Download bereit.) Erneute Downloads funktionieren weiterhin; „functionality is not guaranteed“ (die Funktion ist nicht garantiert) unter iOS 27 | Eine App, keine API |
| „Weather Highlights is currently only available in US English.“ (Weather Highlights ist derzeit nur auf US-Englisch verfügbar.) | Apple führt es unter Deprecations; es liest sich wie ein Verfügbarkeitshinweis |
Eine weiche Deprecation und eine Umbenennung stehen außerhalb der Deprecations-Überschriften. Der Textfeldstil .roundedBorder trägt im SwiftUI-Interface eine Annotation deprecated: 100000.0, deren Meldung, ohne die inneren Backticks, „Use textFieldStyle(.bordered) with textInputBorderShape(.roundedRectangle)“ lautet; sie passt zum New-Features-Eintrag, der TextInputBorderShape einführt. Die Version 100000.0 ist Apples Konvention für „veraltet, aber noch nicht“: Unter den Standard-Compiler-Einstellungen bleibt der Compiler stumm, und die Meldung erscheint nur im Interface. Die Umbenennung ist härter. UINavigationItem.navigationBarMinimization „replaces UINavigationItem.barMinimizeBehavior and UINavigationItem.barMinimizationSafeAreaAdjustment“ (ersetzt die beiden alten Properties), und toolbarMinimizationBehavior in SwiftUI ersetzt toolbarMinimizeBehavior auf dieselbe Weise; keiner der drei alten Namen taucht in den UIKit-Headern des 27.0 SDK oder in den Swift-Interfaces von UIKit und SwiftUI auf, Code darauf kompiliert also nicht, statt zu warnen, dieselbe Klasse wie deleteEvents.24
Auch die harten sind leiser, als sie aussehen. Der Compiler vergleicht eine Deprecation-Version mit Ihrem Deployment-Target, nicht mit dem SDK, ios(3.0, 27.0) erzeugt also nur in einem Target eine Warnung, dessen Minimum-iOS 27.0 ist. Ich habe eine Datei, die canOpenURL aufruft, ein NSBundleResourceRequest erzeugt und originalFilename liest, dreimal gegen das 27er SDK kompiliert: Bei -target arm64-apple-ios17.0-simulator und bei 26.0 kompilierte sie ohne Diagnosen, bei 27.0 erzeugte sie drei Warnungen, 'canOpenURL' was deprecated in iOS 27.0: Prefer attempting to open URLs and handling any failures, 'NSBundleResourceRequest' was deprecated in iOS 27.0: Use Background Assets instead. und 'originalFilename' was deprecated in iOS 27: Use filename instead.4 Eine App mit einem realistischen Minimum erfährt vom Compiler von keiner davon; unter den Standard-Compiler-Einstellungen ist das grep in der Checkliste unten der einzige Hinweis, den Sie bekommen.
Welche Fixes habe ich verifiziert?
Zwei Foundation-Einträge lassen sich ausführen statt nur lesen. Den ersten führen die Notes als behoben: „+[NSURL URLWithString:] no longer double-encodes the % of valid percent-escape sequences when encoding other invalid characters.“ (+[NSURL URLWithString:] kodiert das % gültiger Prozent-Escape-Sequenzen nicht mehr doppelt, wenn es andere ungültige Zeichen kodiert.)2 Die Probe baut NSURL(string:) aus drei Strings, die jeweils ein gültiges Escape und ein Zeichen enthalten, das NSURL escapen muss, und gibt absoluteString aus. Ich habe sie zweimal mit Xcode 27 gebaut: einmal für den Mac und einmal für den Simulator mit einem Minimum-iOS von 26.0, und dann diese eine Simulator-Binärdatei unverändert auf einer iOS-26.5-Runtime und auf der iOS-27.0-Runtime ausgeführt:4
| Eingabe | macOS 26.6.2 und die Simulator-Binärdatei auf iOS 26.5 (identisch) | Dieselbe Simulator-Binärdatei auf iOS 27.0 (24A434) |
|---|---|---|
https://example.com/a%20b c |
https://example.com/a%2520b%20c |
https://example.com/a%20b%20c |
https://example.com/search?q=caf%C3%A9 au lait |
https://example.com/search?q=caf%25C3%25A9%20au%20lait |
https://example.com/search?q=caf%C3%A9%20au%20lait |
https://example.com/p%20q{r |
https://example.com/p%2520q%7Br |
https://example.com/p%20q%7Br |
Die erste Spalte ist das alte Verhalten: NSURL escapet das Leerzeichen und macht zusätzlich aus dem % eines bereits gültigen Escapes ein %25, sodass ein anderer Pfad herauskommt als der, den das Escape benannt hat. Die Spalte für iOS 27.0 ist der Fix. Ein einziges Mach-O, dessen LC_BUILD_VERSION minos 26.0 und sdk 27.0 ausweist, hat beide Simulator-Spalten erzeugt; über das Ergebnis entscheidet also das Betriebssystem, auf dem der Code läuft, nicht das SDK, gegen das Sie kompilieren, und nicht das Target, für das Sie bauen. Eine App, die Sie heute bauen, behält auf der von mir getesteten iOS-26.5-Runtime die alte Kodierung, und die Release Note liefert keinen Grund, auf einem anderen 26.x-Release ein anderes Ergebnis zu erwarten.
Den zweiten führen die Notes als neu, und ich konnte ihn dort, wo ich Code ausführen kann, nicht reproduzieren: „volumeAvailableCapacityKey is truncated to 3 significant decimal digits at the block count level (e.g., 123,456,789 blocks becomes 123,000,000 blocks).“ (volumeAvailableCapacityKey wird auf der Ebene der Blockanzahl auf drei signifikante Dezimalstellen gekürzt, aus 123.456.789 Blöcken werden zum Beispiel 123.000.000.)2 Im iOS-27.0-Simulator lieferte URL.resourceValues(forKeys: [.volumeAvailableCapacityKey]) 226.009.026.560 Bytes, und statfs auf demselben Pfad lieferte f_bavail 55.177.985 bei f_bsize 4.096, was multipliziert exakt dieselbe Zahl ergibt; eine auf drei signifikante Stellen gekürzte Blockanzahl wären 55.100.000 Blöcke oder 225.689.600.000 Bytes gewesen.4 Der Host-Mac meldete über denselben Code 55.177.998 Blöcke. Meine Lesart: Die Kürzung sitzt im Kernel des Geräts und nicht in Foundation, und der Simulator, der den Kernel des Mac nach dem Volume des Mac fragt, kann sie nicht zeigen; ich habe die Probe nicht auf einem Gerät ausgeführt, behandeln Sie den Eintrag also als ungetestet, nicht als falsch, und rechnen Sie damit, dass die Rundung in Geräteberichten zum freien Speicher auftaucht, die bisher exakt waren.
Was ist neu und ändert Code, den Sie bereits haben?
Eingeschränkte Historie in HealthKit. Die Note ist eine Zeile, „Updated HealthKit permissions flow now lets users grant apps access to limited history or full history“ (der überarbeitete HealthKit-Berechtigungsfluss lässt Benutzer Apps Zugriff auf eine eingeschränkte oder die vollständige Historie gewähren), und die Konsequenzen stehen in der API-Referenz.25 Nach dem Bildschirm mit den Datentypen „a second screen prompts them to choose how much historical data to grant your app, either a recent limited window or their full history“ (fragt ein zweiter Bildschirm, wie viele historische Daten die App bekommen soll: ein begrenztes jüngeres Fenster oder die vollständige Historie), und „Time-bound authorization applies only to sample types“ (zeitlich begrenzte Autorisierung gilt nur für Sample-Typen).5 Das neue earliestAuthorizedSampleDate(for:), verfügbar ab iOS 27.0 und watchOS 27.0, liefert ein Dictionary von HKObjectType auf das früheste lesbare Datum, und die Grenze liegt nicht dort, wo man sie vermuten würde: „HealthKit evaluates the boundary against a sample’s end date, so the framework might service your query with a sample that begins before the earliest authorization date as long as the sample ends after it.“ (HealthKit prüft die Grenze gegen das Enddatum eines Samples; ein Sample, das vor dem frühesten autorisierten Datum beginnt, kann Ihre Abfrage also trotzdem bedienen, solange es danach endet.)45 Die Datenschutzregel bleibt: „Your app can’t distinguish between denied and full access; limited authorization is the only state your app can identify, by design.“ (Ihre App kann verweigerten und vollen Zugriff nicht unterscheiden; die eingeschränkte Autorisierung ist absichtlich der einzige Zustand, den sie erkennen kann.)5 Apples Empfehlung: Alles vor dem gelieferten Datum als unbekannt behandeln, nicht als nicht vorhanden, und das Startdatum jeder Abfrage pro Typ beschneiden. Jeder Trend, jede Baseline und jede Serie, die aus HealthKit berechnet wird, muss jetzt auf einem Fenster stimmen, das der Benutzer gewählt hat. Der Beitrag zu HealthKit behandelt die Neuerungen aus dem Juni, nicht die Änderung am Berechtigungsmodell.
StoreKit-Angebotscodes. „Offer code redemption APIs now return a VerificationResult when redemption completes. If a redemption succeeds, your app receives a VerificationResult that contains a Transaction object. If a redemption fails, your app receives an error that describes what caused the redemption to fail.“ (Die APIs zum Einlösen von Angebotscodes liefern nach Abschluss ein VerificationResult; bei Erfolg enthält es eine Transaction, bei Misserfolg kommt ein Fehler mit der Ursache.)2 Im Interface ist presentOfferCodeRedeemSheet(in:) in 27.0 veraltet mit „Use presentOfferCodeRedeemSheet(from:options:) instead.“, und der Ersatz ist presentOfferCodeRedeemSheet(from viewController: UIViewController, options: Set<RedeemOption> = []) async throws -> VerificationResult<Transaction>, verfügbar ab iOS 27.0.4 Code, der das Sheet präsentiert und dann auf Transaction.updates auf das Ergebnis gelauscht hat, kann es jetzt per await abwarten.
Core AI im Hintergrund. „The system now restricts background access to the Neural Engine, similar to GPU usage restrictions“ (das System beschränkt jetzt den Hintergrundzugriff auf die Neural Engine, ähnlich den GPU-Beschränkungen), und „Neural Engine memory usage is now attributed to your app process instead of the system, and appears in the Allocations instrument“ (der Speicherverbrauch der Neural Engine wird jetzt Ihrem App-Prozess statt dem System zugerechnet und erscheint im Allocations-Instrument). Der Hintergrundzugriff „requires the new entitlement: “com.apple.developer.background-tasks.continued-processing.inference”“ (erfordert dieses neue Entitlement).2 Eine App, die unter 26 Inferenz aus einem Background-Task heraus ausgeführt und nie um etwas gebeten hat, findet die Neural Engine geschlossen vor, bis sie das Entitlement besitzt, und der Neural-Engine-Speicher, den sie nutzt, erscheint jetzt unter ihrem eigenen Prozess in Allocations.
Background Assets. „You can reduce your app’s storage usage with localized asset packs. The system delivers the appropriately localized asset packs based on the user’s preferred languages.“ (Mit lokalisierten Asset-Packs lässt sich der Speicherbedarf der App senken; das System liefert die passenden Packs anhand der bevorzugten Sprachen des Benutzers.)2 Für eine App, die On Demand Resources hinter sich lässt, sind lokalisierte Packs die Funktion, die die Tags pro Sprache ersetzt.
Kritische Hinweise. Die Notes führen das Verhalten der kritischen Hinweise als behoben: „Critical alerts are automatically turned on for any apps that request your permission to enable notifications.“ (Kritische Hinweise werden für jede App automatisch eingeschaltet, die um die Erlaubnis für Mitteilungen bittet.)2 Mehr sagt der Eintrag nicht, testen Sie also jeden Mitteilungsfluss erneut, der in den Betas überprivilegiert wirkte.
Menüs, @State, TLS und das neue Slice. Vier Einträge haben eigene Beiträge. Menüleiste und Kontextmenüs auf iPadOS 27 und macOS 27 „present a reduced set of menu item images“ (zeigen einen reduzierten Satz an Menübildern), mit preferredImageVisibility auf UIMenuElement als Überschreibung: siehe Menübilder. Die Neufassung des @State-Makros ist in diesen Notes ein SwiftUI-Eintrag und ändert, was unter Xcode 27 kompiliert: siehe den Beitrag zu Xcode 27 für die Reproduktion und den Beitrag zum @State-Makro für das Audit. Die strengere TLS-Anforderung für MDM-, Enrollment- und Software-Update-Verkehr beginnt „in 27.0 operating systems“ (in den 27.0-Betriebssystemen): siehe das TLS-Audit. Und arm64e.x1 mit CPA2 auf „iPhone models with A20 Pro or later chips, Mac computers with M6 or later chips, and Apple Watch models with S11 or later chips“ (iPhone-Modellen ab A20 Pro, Macs ab M6 und Apple-Watch-Modellen ab S11): siehe arm64e.x1.2
Kleinere Punkte, die ein grep wert sind. System bekommt Swift-Varianten von stat, lstat, fstat und fstatat mit einem Typ Stat und FilePath.stat(), und die Notes führen als behoben einen Konflikt zwischen diesen Methoden und einem unqualifizierten stat() in Ihren eigenen Extensions. NSTextTable „and its related objects and types are available to UIKit clients starting with OS 27 releases“ (und die zugehörigen Objekte und Typen stehen UIKit-Clients ab den OS-27-Releases zur Verfügung). AsyncImage „now automatically caches downloaded images using HTTP caching protocols“ (cacht heruntergeladene Bilder jetzt automatisch nach den HTTP-Caching-Regeln), mit URLRequest-Initialisierern und View.asyncImageURLSession(_:) zur Steuerung. „When linked on iOS 27, tvOS 27, macCatalyst 27, or visionOS 27 SDKs“ (beim Linken gegen diese 27er SDKs) dehnen UIScene.extendStateRestoration und UIScene.completeStateRestoration die Zustandswiederherstellung auf den Übergang vom Hintergrund in den Vordergrund aus. Und SwiftData führt einen Fix für „a deadlock for @Query when saving a ModelContext on a background actor while scheduling new async tasks for a ModelActor“ (einen Deadlock von @Query beim Speichern eines ModelContext auf einem Background-Actor, während neue asynchrone Tasks für einen ModelActor eingeplant werden).2
Bekannte Probleme, mit denen Sie planen sollten
photos.asset-Entities kompilieren nicht mehr. „Existing entities that conformed to @AppEntity(schema: .photos.asset) in prior releases might no longer compile in the 27 SDKs because new properties were added to the schema in this release.“ (Bestehende Entities, die in früheren Releases @AppEntity(schema: .photos.asset) erfüllt haben, kompilieren mit den 27er SDKs womöglich nicht mehr, weil das Schema neue Properties bekommen hat.) Workaround: „To continue conforming to the schema, adopt the additional properties and move the code behind an availability check.“ (Übernehmen Sie die zusätzlichen Properties und stellen Sie den Code hinter eine Availability-Prüfung.)2 Das Makro verrät Ihnen nicht, welche Properties: Eine leere@AppEntity(schema: .photos.asset)-Konformität kompiliert unterswiftcsauber, und ihre Expansion fügt nur eineAssistantSchemaEntity-Konformität hinzu, die den Schemanamen trägt. Die Liste stammt aus dem App-Intents-Metadatenschritt von Xcode,appintentsmetadataprocessor, der den Build mit einem Fehler pro fehlender Property abbricht. Von Hand auf dieser leeren Konformität gegen das 27.0 SDK ausgeführt, meldet er 12, jede mit einem Fix-it:hasSuggestedEdits: Bool,isFavorite: Bool,isHidden: Bool,creationDate: Date?,location: GeoToolbox.PlaceDescriptor?,assetType: <#PhotoAssetType#>?,filter: <#PhotoFilterEffectType#>?,exposure: Double?,saturation: Double?,warmth: Double?,aperture: Double?undisPortraitModeEnabled: Bool?; die beiden<#…#>-Platzhalter stehen für Enums, die Sie selbst gegen die Enum-Schemata.photos.assetTypeund.photos.filterTypedeklarieren und die das InterfacePhotoAssetTypeundPhotoFilterEffectTypenennt. Diese Liste konnte ich nicht gegen das 26er SDK diffen, weil kein Xcode auf diesem Mac das 26er SDK enthält.4- Now-Playing-Tokens gehen an Production. „
RemoteMediaSessionandRemoteMediaSessionRepresentablealways provision Now Playing start and update push tokens for theproductionAPNs environment, even if theaps-environmentconfiguration is set todevelopment.“ (Beide Typen stellen Start- und Update-Push-Tokens für Now Playing immer für die APNs-Umgebungproductionbereit, selbst wennaps-environmentaufdevelopmentsteht.) Workaround: „Use theproductionenvironment for testing and validation.“ (Verwenden Sie zum Testen und Validieren die Umgebungproduction.)2 Die Klasse liegt im neuen FrameworkNowPlayingund ist auf macOS und visionOS als nicht verfügbar markiert.4 SpotlightSearchToolsprengt das On-Device-Modell. Ohne Konfiguration „the tool’s description and parameter schema alone exceed the on-device model’s context window before any prompt is added“ (überschreiten schon Beschreibung und Parameterschema des Tools das Kontextfenster des On-Device-Modells, bevor ein Prompt hinzukommt). Workaround: ein fokussierter Guide, „.focused(.communications),.focused(.calendar),.focused(.documents),.focused(.visualMedia), or.focused(.audio)“.2 Die API existiert:SpotlightSearchTool.Guide.focused(_ domain: ContentDomain = .items)steht neben.completeund.dynamic(_:)im Interface von_CoreSpotlight_FoundationModels.4 Mein Beitrag zur On-Device-KI beschreibt das Tool; seine Adoptionsschritte aus dem Juni hatten die Standardkonfiguration mit dem Systemmodell kombiniert und tragen jetzt eine datierte Korrektur.- Performance-Traces aus dem Kontrollzentrum. „Gathering
PowerProfilerandLookbacktraces through thePerformance TraceControl Center widget might fail to produce traces.“ (Das Erfassen vonPowerProfiler- undLookback-Traces über das Kontrollzentrum-WidgetPerformance Traceliefert womöglich keine Traces.) Apples Workaround lautet „Gather traces on iOS 27.0 beta 1 or earlier“ (Traces auf iOS 27.0 Beta 1 oder früher erfassen), was für die meisten Teams auf einem bereits aktualisierten Gerät kein gangbarer Weg ist.2 - StoreKit-Tests. „Changing the storefront or locale using
SKTestSessiondoesn’t propagate throughStorefront.updates“ (ein Wechsel von Storefront oder Locale überSKTestSessionkommt nicht überStorefront.updatesan), und „Failed purchases usingSKTestSessionmight display error dialogs even whendialogsDisabledis set to true“ (fehlgeschlagene Käufe überSKTestSessionzeigen womöglich Fehlerdialoge, obwohldialogsDisabledauf true steht).2 (17. September: Beide stehen in den Notes zur iOS- und iPadOS-27.2-Beta als behoben.7) - Kurzbefehle und
UnionValue. Ein Parameter mit „two number-related types (for example, both Int and Double)“ (zwei zahlenartigen Typen, etwa Int und Double zugleich) zeigt die Zahlenoption doppelt; Apples Workaround ist, nur einen zu deklarieren.2
Was ich diese Woche tun würde
- Einmal aus Xcode 27 archivieren und die Linked-on-27-Liste oben vor TestFlight gegen die App abarbeiten: Launch-Screen-Schlüssel, Scene-Lifecycle, jedes
TabView, dessen Auswahl einen versteckten Tab benennen kann, und jedes Sheet, das Control-Modifier geerbt hat.2 - Den MetricKit-Code vor der Auslieferung gegen das GA-SDK bauen; eine Binärdatei, die noch
ScrollHitchTimeMetricoder den alten Typ vonratioreferenziert, ist nach Apples Beschreibung ein Absturz beim Start, und das Interface exportiert den Namen nicht mehr.24 - Nach
canOpenURL,NSBundleResourceRequest,originalFilename,FileDocument,deleteEvents,asObjCRenderStateundbarMinimizeBehaviorgreppen; die ersten drei warnen nur bei einem Deployment-Target von 27.0,FileDocumentist weich, und die letzten drei kompilieren nicht, das grep ist also die Benachrichtigung.4 - Wenn Sie HealthKit lesen, nach der Autorisierung
earliestAuthorizedSampleDate(for:)aufrufen und das Startdatum jeder Abfrage pro Typ beschneiden; dann entscheiden, was eine Serie oder eine Baseline auf einem Fenster bedeutet, das der Benutzer gewählt hat.5 - Die Build-Nummer in Bug-Reports aus drei Quellen protokollieren:
ProcessInfoauf dem Gerät, dieSystemVersion.plistdes SDKs auf der Build-Maschine undsimctl list runtimesfür Simulator-Reproduktionen. Sie unterscheiden sich, und ein Fix aus 24A437 muss in 24A434 nicht enthalten sein.4 - Wenn Sie URLs mit
NSURL(string:)aus Strings bauen, weiter auf iOS 26 testen: Das Betriebssystem behebt die%25-Doppelkodierung, nicht Ihr Rebuild, und eine einzige Xcode-27-Binärdatei erzeugt sie auf der 26.5-Runtime und auf 27.0 nicht.4
Häufige Fragen
Wann ist iOS 27.0 erschienen, und welcher Build ist es?
Am Montag, dem 14. September 2026, als Build 24A437, demselben Build, den Apple am Freitag, dem 11. September, als Release Candidate veröffentlicht hatte. iPadOS 27.0 teilt sich die Nummer.1
Ist iOS 27.0.1 erschienen, und ändert es etwas für Entwickler?
Ja, seit Montag, dem 28. September 2026, als Build 24A446. Apple nennt drei Fehlerbehebungen für Geräte (einen Neustart bei Face ID auf iPhone-18-Pro-Modellen, ein Fotoartefakt bei 2x auf wenigen dieser Geräte und einen hängenden Touchscreen) und keine veröffentlichten CVE-Einträge, und Release Notes für Entwickler hat Apple dazu nicht veröffentlicht. Ein Xcode 27.0.1 gibt es nicht, also sind das SDK und alles, was dieser Beitrag darüber sagt, unverändert.910
Welcher iOS-27.0-Build steckt im SDK von Xcode 27?
Das iPhoneOS 27.0 SDK in Xcode 27 (27A266a) meldet als ProductBuildVersion 24A430, und die iOS 27.0 Simulator-Runtime meldet 24A434. Keiner von beiden ist der Geräte-Build.4
Was ist in iOS 27 als veraltet markiert?
Die Notes führen 11 Einträge auf: canOpenURL:, On Demand Resources und NSBundleResourceRequest, PHAssetResource.originalFilename, die ursprünglichen MetricKit-APIs, ScrollHitchTimeMetric, FileDocument, das Schema calendar.deleteEvents, __PKStrokeRenderState, die UIKit-Vorgabe zum Scene-Lifecycle, AirPort Utility und einen Sprachhinweis zu Weather Highlights. Drei tragen im SDK harte Deprecation-Versionen 27.0 und warnen nur bei einem Deployment-Target von 27.0, zwei sind weich, zwei sind Umbenennungen, einer ist eine Entfernung, und drei sind keine API-Änderungen.24
Muss meine App für iOS 27 neu gebaut werden?
Nicht, um weiterzulaufen, und die Einträge teilen sich dreifach auf. SDK-gebunden: die 12 Linked-on-27-Kategorien oben, die nichts ändern, bis Sie mit dem 27.0 SDK bauen. Auf OS-Ebene, für jede Binärdatei auf einem 27.0-Gerät: die Hintergrundbeschränkung der Neural Engine samt Entitlement, der Berechtigungsfluss für die eingeschränkte HealthKit-Historie, die TLS-Durchsetzung für MDM- und Update-Verkehr, die Änderung der Menübilder auf iPadOS 27, der Fix für kritische Hinweise und der NSURL-Kodierungsfix. Beta-Binärdateien: MetricKit-Code, der gegen ein Beta-SDK gebaut wurde und laut Apple mit dem GA-SDK neu kompiliert werden muss, um Abstürze zu vermeiden. Apples SDK-Minimum für den App Store sind seit dem 28. April 2026 die 26er SDKs; die Anforderung des 27er SDK ist eine spätere Frist, die diese Notes nicht setzen.23
Wo finde ich die Release Notes zu iOS 27?
Auf Apples Developer-Dokumentationsseite unter iOS & iPadOS Release Notes, eine Seite für 27.0, gegliedert nach Bereichen mit New Features, Resolved Issues, Known Issues und Deprecations unter jedem. Die Zahlen in diesem Beitrag stammen von dieser Seite, abgerufen am 15. September 2026.2
Steckt der NSURL-Fix im SDK oder im OS?
Im OS. Eine einzige Simulator-Binärdatei, mit Xcode 27 gegen das 27.0 SDK und mit einem Minimum-iOS von 26.0 gebaut, kodiert auf einer iOS-26.5-Runtime doppelt und auf der iOS-27.0-Runtime nicht, und der Mac-Build auf macOS 26.6.2 kodiert ebenfalls doppelt; zwischen den beiden Simulator-Läufen hat sich nichts geändert außer dem Betriebssystem.4
Quellen
-
Apple, Releases, RSS-Feed abgerufen am 15. September 2026: „iOS 27.0 (24A437)“, „iPadOS 27.0 (24A437)“, „macOS 27.0 (26A428)“, „Xcode 27 (27A266a)“, „tvOS 27.0 (24J361)“, „visionOS 27.0 (24M362)“ und „watchOS 27.0 (24R364)“ datiert auf Mon, 14 Sep 2026; „iOS 27.0 RC (24A437)“ datiert auf Fri, 11 Sep 2026; „iOS 27.0 beta (24A5355q)“ datiert auf Mon, 08 Jun 2026. ↩↩↩↩↩
-
Apple, iOS & iPadOS 27 Release Notes, abgerufen am 15. September 2026 nach dem GA-Release. Die Zahlen (93 Bereiche; 65 New Features, 197 Resolved Issues, 23 Known Issues, 11 Deprecations) sind Listenpunkte unter den Überschriften der einzelnen Bereiche. Zitierte Einträge, nach Radar: Overview-Absatz; UIKit, New Features (Launch Screen 168247372, präsentierte View Controller 170005251, Scope-Bar 173860616, externe Displays 177015874, Zustandswiederherstellung 161843040, Menübilder und
preferredImageVisibility170479084,navigationBarMinimization177953926), Resolved Issues (Statusleisten-Accessoren 162044221, Größenänderung 166422120, 178555304, 178558224, 178558897, 178559386, 178560235, 178561952, 178562971, 178573319), Deprecations (Scene-Lifecycle 141837548,canOpenURL:179874781); SwiftUI, New Features (TabView164516837, selektierbarerText79770704,TextRendererauf selektierbaremText158160386,.sceneAccessory175548901,AsyncImage78212597,@State105893279, Menübilder 170480710,TextInputBorderShape173362083,toolbarMinimizationBehavior177954148), Resolved Issues (Sheets und Popovers 167448274,containerRelativeFrame165913417,scrollPositionnach Tipp auf die Statusleiste 111501113, FB12477370), New Features (LabeledContentinMenu175594929), Deprecations (FileDocument178776840); MetricKit, New Features (HitchTimeRatio180024784) und Deprecations (174892111, 180455992); Foundation, New Features (volumeAvailableCapacityKey75545872) und Resolved Issues (NSURL161588649, FB20439045); App Intents, Known Issues (photos.asset181800016, FB23652582) und Deprecations (calendar.deleteEvent176751155); On Demand Resources, Deprecations (170066290); PhotoKit, Deprecations (175412725, FB22589474); PencilKit, Deprecations (176410709); AirPort Utility, Deprecations (158364073); Weather Highlights, Deprecations (164408676); HealthKit, New Features (172310874); StoreKit, New Features (141012819); Core AI, New Features (174796039, 179282606); Background Assets, New Features (163944365); Notifications, Resolved Issues (179179362); Network Security, New Features (176055825); Hardware Security, New Features (152103975); System, New Features (160612181) und Resolved Issues (177911316); TextKit, New Features (159870239); SwiftData, Resolved Issues (178113288); Now Playing, Known Issues (186036238); Core Spotlight, Known Issues (183770678); Control Center, Known Issues (184729556); StoreKit Testing in Xcode, Known Issues (184155259, 184255116); Shortcuts, Known Issues (168315587). ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Apple, App Store Connect release notes, abgerufen am 15. September 2026. Der Eintrag vom 14. September 2026 ist in der Tabelle vollständig zitiert; der Eintrag vom 9. September 2026 hält die Uploads mit den RC-SDKs fest. Das 26er-SDK-Minimum seit dem 28. April 2026 stammt von Apples Seite Upcoming requirements. ↩↩↩↩
-
Reproduktion des Autors auf Xcode 27.0 (27A266a) mit darauf gesetztem
DEVELOPER_DIR, macOS 26.6.2 (25G83), 15. September 2026. Builds:iPhoneOS.sdk/System/Library/CoreServices/SystemVersion.plistenthältProductBuildVersion24A430 undProductVersion27.0;xcrun simctl list runtimesgibt „iOS 27.0 (27.0 - 24A434)“ aus. Header und Interfaces, alle unteriPhoneOS.sdk/System/Library/Frameworks:UIKit.framework/Headers/UIApplication.hZeile 98 (canOpenURL:);Foundation.framework/Headers/NSBundle.hZeilen 721 bis 796 (NSBundleResourceRequest);Photos.framework/Headers/PHAssetResource.hZeilen 29 und 33;MetricKit.framework/Headers/MXMetricManager.hZeile 32;MetricKit.framework/Modules/MetricKit.swiftmodule/arm64e-apple-ios.swiftinterface, null Treffer fürScrollHitchTimeMetricoderscrollHitchTime, vier fürHitchTimeRatio;SwiftUI.framework/Modules/SwiftUI.swiftmodule/arm64e-apple-ios.swiftinterfaceZeilen 23088 bis 23093 (FileDocument), 9334 bis 9338 (ReferenceFileDocument), 1728 bis 1731 (Document), 9489 (Meldung zu.roundedBorder), 13763 (toolbarMinimizationBehavior); null Treffer als ganzer Bezeichner fürbarMinimizeBehavior,barMinimizationSafeAreaAdjustmentodertoolbarMinimizeBehaviorüberUIKit.framework/Headers,UIKit.framework/ModulesundSwiftUI.framework/Moduleshinweg (die einzigen Teilstring-Treffer sind der ModifiertoolbarMinimizationSafeAreaAdjustmentund sein TypToolbarMinimizationSafeAreaAdjustment), währendUINavigationItem.hnavigationBarMinimizationdeklariert;AppIntents.framework/Modules/AppIntents.swiftmodule/arm64e-apple-ios.swiftinterface, null Treffer fürdeleteEvents,deleteEvent: some AppIntents::AppSchemaIntentin Zeile 12608;PencilKit.framework/Headers/PKStrokeRenderState.hZeilen 15 bis 17 sowiePencilKit.framework/Modules/PencilKit.swiftmodule/arm64e-apple-ios.swiftinterfacemit null Treffern fürasObjC,convenience public init(_ swiftValue: PencilKit::PKStroke.PencilKit::RenderState)aufPKStrokeRenderStateReferencein Zeile 46 und dem umgekehrtenpublic init(_ objcValue: PencilKit::PKStrokeRenderStateReference)inPKStroke.RenderStatein Zeile 38;StoreKit.framework/Modules/StoreKit.swiftmodule/arm64e-apple-ios.swiftinterfaceZeilen 311 bis 322;HealthKit.framework/Modules/HealthKit.swiftmodule/arm64e-apple-ios.swiftinterfaceZeilen 741 und 742 (earliestAuthorizedSampleDate(for:),@available(iOS 27.0, watchOS 27.0, macCatalyst 27.0, macOS 27.0, visionOS 27.0, *));NowPlaying.framework/Modules/NowPlaying.swiftmodule/arm64e-apple-ios.swiftinterfaceZeilen 180 bis 182 und 276 bis 278;_CoreSpotlight_FoundationModels.framework/Modules/_CoreSpotlight_FoundationModels.swiftmodule/arm64e-apple-ios.swiftinterfaceZeilen 64 bis 78 und 100 bis 129.photos.asset-Probe: eine 15-zeilige Swift-Datei, die AppIntents und CoreLocation importiert und@AppEntity(schema: .photos.asset) struct ProbeAssetmit einerEntityQuery, einerid, einerdisplayRepresentationund ohne Schema-Properties deklariert;swiftc -c -target arm64-apple-ios27.0-simulatorkompilierte sie mit Exit-Code 0 und ohne Diagnosen, und-Xfrontend -dump-macro-expansionszeigte, dass das Makro unter einem Attribut@available(iOS 27.0, macOS 27.0, tvOS 27.0, watchOS 27.0, visionOS 27.0, *)extension ProbeAsset: AssistantSchemaEntity { static let __appSchemaEntity = "photos.asset" }und eine leereAppEntity-Extension hinzufügt. Das erneute Ausführen derswift-frontend-Zeile des Treibers (mitswiftc -###mitgeschnitten) mit-emit-const-values-pathund-const-gather-protocols-file, gerichtet auf eine von mir geschriebene Liste mit 18 Protokollen (AppIntent,AppEntity,AppEnum,AssistantSchemaEntity,EntityQueryund die übrigen App-Intents-Protokolle), erzeugte eine.swiftconstvalues-Datei, undappintentsmetadataprocessor --module-name ProbeMod --sdk-root <iPhoneSimulator27.0.sdk> --xcode-version 27A266a --platform-family iOS --deployment-target 27.0 --target-triple arm64-apple-ios27.0-simulatordarauf endete mit Exit-Code 255, „At least one halting error was produced during export“ und 12 Zeilen der Form „error: Missing required property ‘exposure’ from AppSchemaEntity ‘photos.asset’“, jeweils gefolgt von einem Fix-it wie „var exposure: Double?“ (die Fix-its fürassetTypeundfiltertragen die Platzhalter<#PhotoAssetType#>?und<#PhotoFilterEffectType#>?;AppIntents.framework/Modules/AppIntents.swiftmodule/arm64e-apple-ios.swiftinterfacedeklariert diese Namen in den Zeilen 11695 und 11705 alsAppSchema.Enum("PhotoAssetType")unterassetTypeundAppSchema.Enum("PhotoFilterEffectType")unterfilterType); der Aufruf spiegelt den Metadatenschritt von Xcode, ist aber nicht Byte für Byte der des Build-Systems, dessen Protokollliste ausSWIFT_EMIT_CONST_VALUE_PROTOCOLSstammt. Probe für Deprecation-Warnungen: eine 11-zeilige Swift-Datei, die UIKit, Foundation und Photos importiert,canOpenURL(_:)aufruft,NSBundleResourceRequest(tags:)konstruiert undPHAssetResource.originalFilenameliest, mitswiftc -cgegen das iPhoneSimulator 27.0 SDK bei-target arm64-apple-ios17.0-simulator,ios26.0undios27.0kompiliert: null Diagnosen bei 17.0 und 26.0, drei[#DeprecatedDeclaration]-Warnungen bei 27.0, im Text zitiert.NSURL-Probe: eine 16-zeilige Swift-Datei, dieNSURL(string:)?.absoluteStringfür die drei Eingaben der Tabelle ausgibt, mitswiftc -Ofür den Host und einmal mitswiftc -O -target arm64-apple-ios26.0-simulatorgegen das iPhoneSimulator 27.0 SDK kompiliert (otool -lauf dem Ergebnis zeigtLC_BUILD_VERSIONmitminos 26.0undsdk 27.0); diese eine Simulator-Binärdatei habe ich mitxcrun simctl spawnauf einem gebooteten Simulator mit der iOS-26.5-Runtime (23F77) und danach auf einem gebooteten iPhone-18-Pro-Simulator mit der iOS-27.0-Runtime (24A434) ausgeführt; die Ausgaben von macOS und iOS 26.5 waren identisch, und alle Ausgaben sind wie in der Tabelle. Kapazitätsprobe:URL(fileURLWithPath: NSHomeDirectory()).resourceValues(forKeys: [.volumeAvailableCapacityKey, .volumeTotalCapacityKey, .volumeAvailableCapacityForImportantUsageKey])plusstatfs; der Simulator-Lauf gabvolumeAvailableCapacity = 226009026560,f_bavail = 55177985,f_bsize = 4096aus; der Host-Lauf gabvolumeAvailableCapacity = 226009079808,f_bavail = 55177998aus. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩ -
Apple, HealthKit-Dokumentation, earliestAuthorizedSampleDate(for:) und Authorizing access to health data, abgerufen am 15. September 2026. Die Methodenseite nennt als Verfügbarkeit iOS 27.0, iPadOS 27.0, Mac Catalyst 27.0, macOS 27.0, visionOS 27.0 und watchOS 27.0 und ist die Quelle des Satzes zum Enddatum sowie von „Your app can’t distinguish between denied and full access; limited authorization is the only state your app can identify, by design.“; der Guide ist die Quelle von „people can choose to grant your app access to only a limited window of recent data rather than their full history“, des Satzes zum zweiten Bildschirm und von „Time-bound authorization applies only to sample types.“ ↩↩↩↩↩
-
Apple, MXMetricManager, MetricKit-Klassenreferenz, abgerufen am 15. September 2026 über Apples Dokumentations-JSON: Die Verfügbarkeit nennt iOS 13.0, iPadOS 13.0, Mac Catalyst 13.1, macOS 12.0 und visionOS 1.0 mit
deprecatedAt27.0 bei jedem Eintrag, und die Deprecation-Zusammenfassung lautet „Use MetricManager instead.“ ↩ -
Apple, iOS & iPadOS 27.2 Beta Release Notes, am 17. September 2026 über den Dokumentations-JSON-Endpunkt abgerufen. Abschnitte: Overview, App Tracking Transparency (New Features, 179504171), Health (Known Issues, 186964423), Shortcuts (Known Issues, 187499433), StoreKit Testing in Xcode (Resolved Issues 183933307, 184155259, 184255116; Known Issues 186018916); keine Überschrift Deprecations. Apple, Xcode 27.2 Beta Release Notes, Overview: „The iOS SDK and simulator support for iPhone Duo will be available later this month in an upcoming release of Xcode 27.1.“ Apple, Releases, RSS-Feed abgerufen am 17. September 2026: „iOS 27.2 beta (24B5084k)“, „iPadOS 27.2 beta (24B5084k)“ und „Xcode 27.2 beta (27B5019j)“ datiert auf Wed, 16 Sep 2026; kein Eintragstitel enthält 27.1. ↩↩↩↩
-
Apple, Releases, RSS-Feed abgerufen am 19. September 2026: „Xcode 27.1 beta (27A9269)“ datiert Fri, 18 Sep 2026 10:00:00 PDT. Apple, Xcode 27.1 Beta Release Notes, abgerufen über den Dokumentations-JSON-Endpunkt am 19. September 2026: Overview, zitiert; Abschnitte Mac Catalyst (Known Issues 185924957, 187046347), Previews (New Features 182598534), Simulator (Known Issues 187708500, 187708663, 187708767). Apple, iOS & iPadOS Release Notes, Index, Dokumentations-JSON abgerufen am 19. September 2026: Die einzigen 27er-Einträge sind „iOS & iPadOS 27 Release Notes“ und „iOS & iPadOS 27.2 Beta Release Notes“. Apple, App Store Connect Release Notes, 18. September 2026, TestFlight update, vollständig zitiert. Apple, „Get ready with the latest beta releases“, News, 16. September 2026, zitiert. Apple, Xcode 27.2 Beta Release Notes, abgerufen am 17. und am 19. September 2026: Der Overview-Satz „The iOS SDK and simulator support for iPhone Duo will be available later this month in an upcoming release of Xcode 27.1.“ ist im späteren Abruf durch den Hinweis „Download Xcode 27.1 beta to get the iOS SDK and simulator support for iPhone Duo.“ ersetzt, mit Link auf https://developer.apple.com/download/applications/. Apple, ArrangementView, Dokumentations-JSON abgerufen am 19. September 2026: Verfügbarkeit iOS 27.1 und iPadOS 27.1, als Beta markiert. Dieselbe Verfügbarkeit, iOS 27.1 und iPadOS 27.1 als Beta, steht auf den Seiten zu UIArrangementViewController, reservedRegions(kind:options:layoutDirectionBehavior:), reservedRegions(kind:options:) und toolbarVerticalBehavior(_:), jeweils am selben Tag abgerufen. Apple, Releases, RSS-Feed abgerufen am 21. September 2026: sechs Einträge „27.2 beta 2“, datiert Mon, 21 Sep 2026 10:00:00 PDT, iOS und iPadOS 24B5089g, macOS 26B5091g, tvOS 24K5093g, visionOS 24N5093f, watchOS 24S5091f, und kein Xcode-Eintrag nach dem 18. September. Apple, iOS & iPadOS 27.2 Beta 2 Release Notes, Dokumentations-JSON abgerufen am 21. September 2026: Das Overview nennt Beta 2; Abschnitte und Radar-Nummern decken sich mit Fußnote 7. Der Index der Release Notes, am selben Tag abgerufen, führt „iOS & iPadOS 27.2 Beta 2 Release Notes“ und „iOS & iPadOS 27 Release Notes“ als seine einzigen 27er-Einträge. ↩↩↩↩↩
-
Apple, Releases, RSS-Feed abgerufen am 1. Oktober 2026: „iOS 27.0.1 (24A446)“, „iPadOS 27.0.1 (24A446)“, „macOS 27.0.1 (26A434)“, „visionOS 27.0.1 (24M372)“, „iPadOS 26.7.1 (23H30)“ und „Xcode 27.2 beta 2 (27B5028f)“ datiert Mon, 28 Sep 2026 10:00:00 PDT; „watchOS 27.0.1 (24R365)“ am selben Tag um 13:00:00 PDT; die Xcode-Einträge des Feeds sind „Xcode 27.2 beta 2 (27B5028f)“, „Xcode 27.1 beta (27A9269)“, „Xcode 27 (27A266a)“ und „Xcode 26.6 (17F113)“. Der Index der iOS- und iPadOS-Release-Notes und die Seite iOS & iPadOS 27 Release Notes, beide am 1. Oktober 2026 über den Dokumentations-JSON-Endpunkt abgerufen; der Text der Seite stimmt mit der am 26. September 2026 gespeicherten Kopie überein, und eine erneute Zählung ihrer Listeneinträge ergibt 93 Bereiche mit 65 New Features, 197 Resolved Issues, 23 Known Issues und 11 Deprecations. ↩↩↩↩↩↩↩↩
-
Apple Support, „About iOS 27 Updates“, veröffentlicht am 29. September 2026, Abschnitt zu iOS 27.0.1, zitiert. Apple Support, „Apple security releases“, abgerufen am 1. Oktober 2026: iOS 27.0.1 und iPadOS 27.0.1, 28. September 2026, „This update has no published CVE entries.“ Apple Support, „About the security content of iOS 26.7.1 and iPadOS 26.7.1“, veröffentlicht am 28. September 2026: CoreGraphics, CVE-2026-86950, zitiert. ↩↩↩↩↩