Apple Release Notes

Last updated: Nov 7, 2025

Apple Products

All Apple Release Notes

  • November 2025
    • No date parsed from source.
    • Detected by Releasebot:
      Nov 7, 2025
    Apple logo

    macOS by Apple

    macOS Tahoe 26.2 Beta Release Notes

    macOS 26.2 SDK arrives with Xcode 26.2, letting developers target Tahoe 26.2 beta and test against API changes. The release includes fixes for AirDrop, StoreKit subscriptions, and Instruments, plus known issue workarounds.

    Update your apps to use new features, and test your apps against API changes.

    The macOS 26.2 SDK provides support to develop apps for Mac computers running Tahoe 26.2 beta. The SDK comes bundled with Xcode 26.2, available from the Mac App Store. For information on the compatibility requirements for Xcode 26.2, see Xcode 26.2 Release Notes.

    AirDrop

    Known Issues

    • Some macOS devices set to “Everyone” are not displayed in AirDrop (163684116)
      • Workaround: Set the devices to “Contacts Only” in AirDrop settings and ensure the devices have each other’s Apple account email or phone number in their Contacts.

    Instruments

    Resolved Issues

    • Fixed: The Allocations instrument sometimes fails to report reference counting operations for native Swift types. (163080666)

    StoreKit

    Resolved Issues

    • Fixed: An issue prevents the purchase of a subscription using a win-back offer when testing with StoreKit Testing in Xcode. (162357552) (FB20604848)

    Known Issues

    • SubscriptionStatus.all returns old SubscriptionStatus after a subscription change. (163505178)
      • Workaround: Wait 24 hours and try again.

    See Also

    • macOS 26
    • mac OS Tahoe 26 .1 Release Notes

    Update your apps to use new features, and test your apps against API changes.
    mac OS Tahoe 26 Release Notes
    Update your apps to use new features, and test your apps against API changes.

    Original source Report a problem
  • November 2025
    • No date parsed from source.
    • Detected by Releasebot:
      Nov 5, 2025
    Apple logo

    iOS by Apple

    iOS & iPadOS 26.2 Beta Release Notes

    Apple releases the iOS and iPadOS 26.2 SDK with Xcode 26.2 for beta app development and API testing. It includes fixes for allocations reporting, StoreKit testing subscriptions, and subscription status, plus guidance on TLS Client Hello changes.

    iOS & iPadOS 26.2 SDK

    The iOS & iPadOS 26.2 SDK provides support to develop apps for iPhone and iPad running iOS & iPadOS 26.2 beta. The SDK comes bundled with Xcode 26.2, available from the Mac App Store. For information on the compatibility requirements for Xcode 26.2, see Xcode 26.2 Release Notes.

    Fixed

    • The Allocations instrument sometimes fails to report reference counting operations for native Swift types. (163080666)
    • PermissionKit Significant App Update API is not testable in sandbox. (163601229)
    • Fixed: An issue prevents the purchase of a subscription using a win-back offer when testing with StoreKit Testing in Xcode. (162357552) (FB20604848)

    SubscriptionStatus

    • SubscriptionStatus.all returns old SubscriptionStatus after a subscription change. (163505178)
    • Workaround: Wait 24 hours and try again.

    TLS Client Hello

    The default TLS Client Hello has been modified. If your app or website communicates with servers configured with strict bot-detection or security policies that only allow traffic with known TLS fingerprints, then users might be unable to login or perform other actions.
    TLS Client Hellos are expected to change across releases as Apple works to offer the most secure TLS options. Servers should adopt resilient and adaptable bot-detection policies that can handle changes in TLS Client Hellos. Overly restrictive policies can cause difficult to triage disruptions to user experience. (163151032)

    Original source Report a problem
  • October 2025
    • No date parsed from source.
    • Detected by Releasebot:
      Oct 7, 2025
    Apple logo

    macOS by Apple

    AppKit Release Notes for macOS Monterey 12

    MacOS Monterey 12 AppKit brings new button tinting, slider track fills, and layered SF Symbols for richer in‑window UI. It adds animations for popovers, enhanced symbol configuration, and tightened secure coding for restorable state, plus broader API changes.

    New Features

    NSButton

    • Buttons no longer highlight using the accent color when clicked. Before using any subclass that performs custom drawing, inspect the button cell’s doc://com.apple.documentation/documentation/appkit/nscell/1526141-interiorbackgroundstyle property to determine if the bezel draws in a normal or emphasized state.
    • Buttons now support custom tinting with the bezel Color property. This property — previously applied only in the Touch Bar — now functions for all in-window buttons using the doc://com.apple.documentation/documentation/appkit/nsbuttontype/nsbuttontypemomentarypushin style.

    NSSlider

    • When clicking on the track, for linear sliders, circular sliders, or dial, the slider now animates to the new value.
    • You can now tint sliders with colorful track fills using the track Fill Color property. This property now functions for all in-window sliders.

    NSSegmentedControl

    • Segmented controls now support custom tinting via the selected Segment Bezel Color property. This property now functions for all in-window segmented control styles that draw colorful selected segments.

    NSPopover

    • NSPopover has a new animation when appearing and dismissing.

    Symbol Images

    • SF Symbols now support layered symbol images. Layered symbol images use an updated data format to annotate each path element of the symbol with a level in a hierarchy: primary, secondary, tertiary, and so on. At draw time, AppKit can assign different colors to each layer of the symbol using new APIs on NSImage .Symbol Configuration. Many system-provided symbol images redesigned to include layered versions.
    • NSImage .Symbol Configuration now supports merging two configurations with applying(_) method.
    • NSImage now includes a read-only property, NSImage .Symbol Configuration, for its current symbol configuration. You can use this property to configure other symbol images to match a reference image, or to merge an image’s existing configuration with a set of new configuration options.

    Restorable State

    • To enable secure coding for a restorable state, implement application Supports Secure Restorable State(_:). When opted in:
      • The system requires classes passed to restoration Class to explicitly conform to NSWindow Restoration.
      • Set requires Secure Coding to true and the decoding Failure Policy to NSCoder .Decoding Failure Policy .set Error And Return for any coder the following implementations or overrides use decoding Failure Policy set to NSCoder .Decoding Failure Policy .set Error And Return:
        • restore Window(with Identifier: state: completion Handler:)
        • restore Window(with Identifier: state: completion Handler:)
        • encode Restorable State(with:)
        • encode Restorable State(with: background Queue:)
        • restore State(with:)
        • restore Window(with Identifier: state: completion Handler:)
        • encode Restorable State(with:)
        • encode Restorable State(with: background Queue:)
        • restore State(with:)
      • Additionally, restorable State Key Paths must only point at NSSecure Coding-compliant values and you need to implement allowed Classes(for Restorable State Key Path:) to specify the type of the object.

    NSMenu

    • The new user preference “Automatically hide and show the menu bar in full screen” in Dock & Menu Bar preferences is enabled by default. In macOS Monterey 12, the user can choose to disable this setting to always show the menu bar in full screen spaces. Standard full screen windows are resized to fit below the menu bar. Some apps assume a full screen-sized window, and don’t work well with this setting.

    NSTableView

    • 20-point spacing precedes each group row to make the separation between sections more visible. Source lists have a similar, but smaller, 13-point spacing. This applies to the NSTable View .Style .inset and NSTable View .Style .full Width effective styles in apps linked against the macOS 12 SDK. NSTable View .Style .plain doesn’t display the spacing.
    • The floating group row transition — previously a push transition — instantly replaces the new floating group row. It occurs when the x-height of the group row’s label meets the bottom of a currently floating group row.

    NSOutlineView

    • The disclosure button now aligns with the cell view’s first Baseline Offset From Top. The system overrides it in NSTable Cell View so it matches the baseline of its text Field (assuming textfield sets the baseline). Overriding the property and returning 0 reverts to the previous behavior.
    • When collapsing several items, the selection Did Change Notification only posts once. Previously, it posted once per collapsed item.

    NSOpenPanel

    • Setting can Choose Files to false automatically disabled files, but all of the directory contents were sent to panel(_: should Enable:) or panel: should Show Filename:. In macOS Monterey 12, files aren’t sent to the delegate methods unless can Choose Files is true. In addition, file packages are excluded unless treats File Packages As Directoriesis is true. This change allows optimization in the delegate method.

    TextKit 2

    • TextKit 2 introduces a new text layout engine and its associated API. You can use TextKit 2 alongside the existing TextKit API.
    • NSText Content Storage and NSText Layout Manager are the two main controller objects superseding NSText Storage and NSLayout Manager respectively. NSText Paragraph managed by NSText Content Storage represents a paragraph of text. NSText Layout Manager stores the layout information in its model objects: NSText Layout Fragment and NSText Line Fragment.
    • In TextKit 2, NSText Selection encapsulates information associated with a text selection while NSText Selection Navigation manipulates and converts the selection object based on keyboard and mouse navigation actions.
    Original source Report a problem
  • October 2025
    • No date parsed from source.
    • Detected by Releasebot:
      Oct 7, 2025
    Apple logo

    macOS by Apple

    AppKit Release Notes for macOS 14

    Apple macOS 14 AppKit update brings major API changes and deprecations, including EPS removal and new view clipping defaults. The release introduces new APIs for views, toolbars, menus and activation, plus guidance to test apps against API changes.

    NSEPSImageRep

    • Deprecated in macOS 14.0 as encapsulated PostScript (EPS) files are no longer supported by macOS. Learn more on Apple Support. (107052479)
    • Attempting to initialize an instance of NSEPSImageRep will always return nil on macOS 14.0 and later.
    • Attempting to initialize an instance of NSImage with an EPS file or data will always return nil on macOS 14.0 and later.
    • If a multi-rep image is initialized by name (NSImage(named:), Bundle.image(forResource:), etc.), it will no longer include EPS reps. If no supports (non-EPS) reps could be produced, this will result in nil being returned from these functions.

    NSImageDelegate

    • Deprecated four of the five NSImageDelegate methods as of Mac OS X 10.4 Tiger. (18422088)
    • -image: will Load Representation:
    • -image: did Load Representation Header:
    • -image: did Load Part Of Representation: with Valid Rows:
    • -image: did Load Representation: with Status:
    • These methods haven’t been called by AppKit since Mac OS X 10.4 Tiger.
    • Using these symbols in Objective-C may produce warnings or errors, depending on the project’s build settings.
    • These symbols are no longer available in Swift in the macOS 14.0 SDK.

    NSSavePanel, NSOpenPanel

    • Added the property identifier. (4228269)
    • Modeless and application modal open and save panels are now main windows. (14623155, 103038843)
 This fixes a problem where menu items that weren’t applicable to the open or save panel remained enabled.
Open and save panels that are displayed as sheets are unchanged.
    • Removed the titlebar from modal and modeless NSSavePanels. (105212420)
 This changes NSSavePanel to have consistent behavior with NSOpenPanel.

    NSPrintPanel, NSPageLayout

    • Applications linking against SDKs released for Fall 2023 may now release the NSPrintInfo instance and other related objects as soon as the NSPrintPanel/NSPageLayout panel is dismissed.
    • Added block based variants of the begin-sheet methods (6990600):
      class NSPrintPanel {
      open func beginSheet(using printInfo: NSPrintInfo, on parentWindow: NSWindow, completionHandler handler: ((NSPrintPanel.Result) -> Void)? = nil)
      open func beginSheet(using printInfo: NSPrintInfo, on parentWindow: NSWindow) async -> NSPrintPanel.Result
      }
      class NSPageLayout {
      open func beginSheet(using printInfo: NSPrintInfo, on parentWindow: NSWindow, completionHandler handler: ((NSPageLayout.Result) -> Void)? = nil)
      open func beginSheet(using printInfo: NSPrintInfo, on parentWindow: NSWindow) async -> NSPageLayout.Result
      }

    NSColor

    • NSColor.textInsertionPointColor provides a robust way to get the current text insertion point color as defined by the system.
    • To be consistent with an NSTextView, use NSTextView.insertionPointColor.
    • Otherwise, if not using a text view, use NSColor.textInsertionPointColor.

    NSTextInsertionIndicator

    • NSTextInsertionIndicator is a new NSView that encapsulates all the behavior for a text insertion indicator — such as blinking while waiting for typing and prompting during dictation. NSTextView uses the NSTextInsertionIndicator. But, if using a custom text implementation, instantiate and add an NSTextInsertionIndicator as a subview of the custom text view. Its text implementation only needs to set the indicator view’s display mode—automatic, visible, or hidden—and frame. Based on the display mode the indicator view will infer from the frame whether it needs to blink or not.

    NSView

    • In macOS 14, AppKit is exposing the clipsToBounds property of NSView.

    For applications linked against the macOS 14 SDK, the default value of this property is false. Apps linked against older SDKs default to true. Some classes, like NSClipView, continue to default to true. The change in defaults recognizes that it is vastly easier to reason about clipping a view’s descendants than it is to unclip a view’s ancestors.

    Users can turn clipping back on by using the NSView.clipsToBounds setter or using the attributes inspector of a view in the Xcode interface builder.

    This property is available back to macOS 10.9. This availability is intended to allow code targeting older OSes to set this property to true without guarding the setter in an availability check. Setting this property to false on previous OSes may not work reliably.

    Some patterns that have historically worked will require adjustment:
    ◦ Showing or hiding UI by setting an ancestor’s frame to zero. When attempting to hide a view hierarchy by shrinking the size of an ancestor, or positioning a descendent view outside an ancestors view’s bounds, it is now necessary to set the ancestor’s view’s .clipsToBounds property to true. An alternative may be to set NSView.isHidden, instead.
    ◦ Filling the dirty rect of a view inside of -drawRect. A fairly common pattern is to simply rect fill the dirty rect passed into an override of NSView.draw(). The dirty rect can now extend outside of your view’s bounds. This pattern can be adjusted by filling the bounds instead of the dirty rect, or by setting clipsToBounds = true.
    ◦ Confusing a view’s bounds and its dirty rect. The dirty rect passed to .drawRect() should be used to determine what to draw, not where to draw it. Use NSView.bounds when determining the layout of what your view draws. (10905750)

    NSViewController

    • Added API:
      open var viewIfLoaded: NSView? { get }
      open func loadViewIfNeeded()
      open func present(_ viewController: NSViewController, asPopoverRelativeTo positioningRect: NSRect, of positioningView: NSView, preferredEdge: NSRectEdge, behavior: NSPopover.Behavior, hasFullSizeContent: Bool)
    • NSViewController.loadView() no longer throws an exception when the view controller’s nibName is nil. (81775005)

    TextKit API Coordinate System Changes

    • Applications linking against SDKs released for Fall 2023 have behavior changes from TextKit API.
    • NSTextLineFragment.typographicBounds is relative to NSTextLayoutFragment.layoutFragment.origin (instead of in the text container coordinate system as it was before)
    • NSTextLineFragment.typographicBounds.size.width doesn’t contain NSTextContainer.lineFragmentPadding. The side effect of this change is that the padding is also excluded from both NSTextLayoutFragment.layoutFragmentFrame and NSTextLayoutManager.usageBoundsForTextContainer. Consequently, NSTextLineFragment.glyphOrigin.x no longer includes the padding, either.
    • NSTextLineFragment.locationForCharacterAtIndex() used to return a point relative to NSTextLayoutFragment.origin. It now returns a point relative to the text line fragment coordinate system as documented.

    Restorable State

    • Secure coding is automatically enabled for restorable state for applications linked on the macOS 14.0 SDK. Applications that target prior versions of macOS should implement NSApplicationDelegate.applicationSupportsSecureRestorableState() to return true so it’s enabled on all supported OS versions.

    Display Link

    • A CADisplayLink can be created via NSView.displayLink(target: selector:). The CADisplayLink will automatically track the display the view is on, and will be automatically suspended if it isn’t on a display. A CADisplayLink instance can also be created from an NSWindow or NSScreen.

    NSToolbar

    • Applications linked against the macOS 14.0 SDK will no longer show the .toggleSidebar toolbar item to the leading edge of the inline window title and will instead show relative to its order in the defaultItemIdentifiers delegate method. It is recommended to place this item above the sidebar section of the toolbar as the leading most item of that section so that toggling the sidebar does not move the toolbar item itself. As a reminder, items placed before the .sidebarTrackingSeparator in the defaultItems delegate method will appear above the sidebar in the toolbar. Similarly, the best place for the new .toggleInspector item is above the inspector section of the toolbar as the trailing most item following the .inspectorTrackingSeparator, but it may be placed elsewhere in the toolbar if appropriate.
    • NSToolbar now supports centering items in multiple sections of the toolbar. Use the centeredItemIdentifiers property to specify a set of items and they will be centered in the section they appear in. The set of centered items no longer applies to a single section of the toolbar, but may be used to center one item in the sidebar section and another item in the content section for instance.
    • NSToolbar with autosavesConfiguration enabled and allowsUserCustomization disabled will now persist manual changes to the toolbar from -insertItemWithIdentifier: atIndex: and -removeItemAtIndex: across app launches. Previously manual inserts/removes were not persisted. Additionally, NSToolbars with autosavesConfiguration disabled will now sync manual inserts/removes to other NSToolbar objects with the same identifier, including new windows, but the toolbar’s configuration will not persist across app launches. If syncing across windows is not desired, each window’s toolbar should be given a unique identifier. (103038749)

    Menus

    • In macOS 14, menus have been reimplemented from the ground up to fully use AppKit.
    • New section header API provides a consistent way to organize and structure menus.
    • NSMenu has new selectionBehavior property, which allows the menu to automatically manage state of the same selection groups, reducing the amount of code the developer has to write.
    • Palette presentation style allows to show menu items in a horizontal series, embedded inline in the parent menu.
    • NSMenuItem has new API to create section header menu items, which are used to organize and structure menus. The appearance and behavior of section header items are entirely defined by NSMenu and cannot be customized. (59962793)
    • For applications linked against the macOS 14 SDK, NSMenu will now assert if a secondary thread inserts or removes menu items from menus contained within the main menu. Making changes to the main menu from any thread other than the main thread has never been a supported or safe programming practice, because the main thread may be examining the main menu contents at any time (for example, to draw the menubar, to determine if a menu item matches a key event, to answer an accessibility request, etc), and there is no method for a background thread to modify the main menu while ensuring that the main thread is not simultaneously examining its contents. This practice is now prevented at runtime. (96331659)

    App Activation

    • In macOS 14, app activation is driven by user intent. It is treated by the system as a request and is not always guaranteed to be honored or to succeed. Apps have the ability to provide context with activation requests in cases where a more deterministic result is desired.
    • NSApplication.activate(ignoringOtherApps:) and NSApplication.ActivationOptions.ignoringOtherApps are deprecated in macOS 14 and should not be used.
    • NSApplication has a new method, activate, that sends the activation request to the system. The request may provide different results based on the context in which the app is running, user activity, and other factors. If necessary for app functionality, active status can be checked by querying the isActive property on NSApplication. In general, apps should not assume that activation requests will always succeed.
    • macOS 14 provides more ways for apps to express the context in which activation should occur. A common scenario is cooperative activation, or passing the active state from one app to another. This process can be useful for apps that need to explicitly pass activation state, such as launchers and view services. The active app can use NSApplication.yield(to:) method to yield its active state to an instance of NSRunningApplication, or yield(toApplicationWithBundleIdentifier:) to yield to a bundle ID, which may be used in case the receiver app is not running or its status is unknown. Note that the sender does not deactivate at the time of invoking these methods. After yielding, the sender may activate the receiver using NSRunningApplication API, or the target app may simply activate itself by invoking the NSApplication.activate method. The cooperative activation mechanism guarantees successful activation as long as the yielding app is active at the time of the request and the receiver can become active.
    • Existing calls to NSApplication.deactivate() should be replaced by NSApplication.yield(to:) to make activation handoff more explicit, and to delay changing the appearance of the calling app until the target app has activated.
    Original source Report a problem
  • Sep 22, 2025
    • Parsed from source:
      Sep 22, 2025
    • Detected by Releasebot:
      Sep 29, 2025
    Apple logo

    Safari by Apple

    Safari 26.1 Beta

    Safari 26.1 beta brings broad accessibility and rendering fixes across iOS, macOS, visionOS, and more, plus CSS anchor positioning improvements, form and PDF refinements, security policy alignment, and WebGPU/WebRTC stability tweaks. A solid polish release.

    Safari 26.1 beta is available for iOS 26.1 beta, iPadOS 26.1 beta, visionOS 26.1 beta, macOS 26.1 beta, macOS Sequoia, and macOS Sonoma.

    Accessibility Resolved Issues

    • Fixed hit testing for scrolled iframe content by adjusting for the frame’s scroll position, ensuring accurate element detection across assistive technologies. (158233884)
    • Fixed an issue where VoiceOver reports the wrong radio count with a dynamically inserted radio option. (159937173)
    • Fixed exposing content within dynamically expanded details elements in the accessibility tree. (159937257)
    • Fixed the target of aria-labelledby not updating its accessibility label after dynamic inner HTML change in the label. (160691619)

    Browser Resolved Issues

    • Fixed Safari’s frozen iOS user agent version to correctly report 18_6_2 for improved compatibility. (160246460)

    CSS New Features

    • Added support for remembering the last successful position-try fallback in CSS anchor positioning to reduce layout jumps when styles change. (158452223)

    CSS Resolved Issues

    • Fixed anchor positioning to correctly handle fragmented multicolumn flows. (156958568)
    • Fixed anchor positioning fallbacks to respond dynamically to scrolling. (158451016)
    • Fixed @media print styles to work when used inside a nested rule. (158608834)
    • Fixed an issue where container queries failed to re-evaluate after a position-try fallback because the query container state was not reset. (158880410)
    • Fixed performance of :has(> .changed) .subject selectors. (159257003)
    • Fixed pseudo-class invalidation performance by creating separate Rule Sets for attribute selectors like :has([attr=value]) to avoid using universal invalidation. (159257022)
    • Fixed anchor position to only generate position options on base style. (159570080)
    • Fixed an issue where changing the ruby-overhang property did not trigger a layout update, ensuring proper rendering when overhang values change. (159573050)
    • Fixed anchor positioning to correctly account for a left-hand scrollbar in right-to-left and vertical-rl containing blocks. (160723993)

    Forms Resolved Issues

    • Fixed native text inputs so that their background colors properly update when autofilled. (159014135)
    • Fixed checkboxes and radio buttons missing borders in the filled state when “Increased Contrast” is enabled on macOS. (159379948)

    PDF Resolved Issues

    • Fixed VoiceOver not recognizing the password form. (159240531)

    Rendering Resolved Issues

    • Fixed a bottom gap appearing on layouts with viewport-sized fixed containers on iOS. (158055568)
    • Fixed position-visibility: anchors-visible visibility heuristic in certain situations. (160060564)
    • Fixed an issue on iOS where Safari extension popups and some websites could scroll or flicker unexpectedly. (160216319)

    Security Resolved Issues

    • Fixed Safari ignoring the style-src-elem Content Security Policy directive ensuring it is checked before falling back to style-src, in line with CSP3 specifications. (157298407)

    Web API Resolved Issues

    • Fixed an issue on iOS 26 where pressing the B button on a gamepad could make a page appear to lose gamepad focus by bypassing the system’s automatic navigation behavior. (159125095)

    Web Inspector Resolved Issues

    • Fixed issue where searching on certain text fails to find matches. (159897282)

    WebGPU Resolved Issues

    • Fixed an issue where GPUQueue.copyExternalImageToTexture could not handle SVG images. (158442476)
    • Fixed an issue where video playback using the WebGPU renderer in WebCodecs could display a black screen. (158442539)
    • Fixed an issue where WebGPU video textures failed to load in Three.js panoramas. (159918934)

    WebRTC Resolved Issues

    • Fixed getUserMedia() on iOS incorrectly firing devicechange events when there was no actual change to available microphones or default devices. (157693528)
    Original source Report a problem
  • Sep 15, 2025
    • Parsed from source:
      Sep 15, 2025
    • Detected by Releasebot:
      Sep 29, 2025
    Apple logo

    Safari by Apple

    Safari 26.0

    Safari 26.0 arrives with broad accessibility fixes, new CSS and rendering features, expanded Web APIs, and improved performance across iOS, macOS, visionOS, and more. Highlights include ARIA fixes, SVG and Canvas enhancements, WebGL/WebGPU support, and Web Extensions updates.

    Safari 26.0 is available for iOS 26, iPadOS 26, visionOS 26, macOS 26, macOS Sequoia, and macOS Sonoma.

    Accessibility

    • Fixed aria-expanded attribute support on navigation links. (141163086)
    • Fixed presentational images with empty alt attributes to be ignored by assistive technology, even when additional labeling attributes are set. (146429365)
    • Fixed within a element to only contribute to the accessible name of an element if the image lacks other labeling methods like alt, ARIA attributes, or the title attribute. (150597445)
    • Fixed handling of invalid values for aria-setsize and aria-posinset according to the most-recent revision of the ARIA specification. (151113693)
    • Fixed VoiceOver reading “Processing page %infinity” when loading large pages. (152617082)
    • Fixed VoiceOver failing to output newlines in certain circumstances when using caret navigation. (154368379)
    • Fixed an issue where dynamic changes to iframe display properties could cause the iframe’s scroll view to incorrectly become the accessibility root, preventing assistive technologies from accessing content outside the iframe. (156440342)
    • Fixed CSS content alt text when used on an element to be announced by VoiceOver. (156666741)

    Animations

    New Features

    • Added support for animation-range, animation-range-start, animation-range-end, and animation-timeline properties for ::marker. (154021467)

    Browser

    New Features

    • Added support for SVG icons. (113567909)
    • Added support for reporting a website compatibility issue in Safari. (133791139)
    • Added support for data: URL icons. (143967312)

    Resolved Issues

    • Fixed keyboard typing to cancel voice dictation. (152597958)
    • Fixed: Safari now reports a frozen OS version in its user agent string on iOS 26 and iPadOS 26, showing the last version released before iOS 26. (156170132)

    CSS

    New Features

    • Added support for overflow-block and overflow-inline. (70579028)
    • Added support for the margin-trim: block inline syntax for trimming in both directions. (141784069)
    • Added partial support for the dynamic-range-limit property: standard and no-limit, non-animatable. (144486108)
    • Added support for contrast-color(). (144630635)
    • Added support for Scroll-driven Animations. (144887859)
    • Added support for allowing declarations directly inside @scope rule without a style rule ancestor. (145101643)
    • Added support for text-wrap-style: pretty. (145577976)
    • Added support for CSS Anchor Positioning. (145681750)
    • Added support for the self-alignment properties align-self and justify-self in absolute positioning. (145689547)
    • Added support for CSS progress() function. (145717727)

    Resolved Issues

    • Fixed cursor: pointer not appearing on an element used in conjunction with an element. (74483873)
    • Fixed: Apply space from align-content when grid container and rows have definite sizes during column sizing (85252183)
    • Fixed and to always be in-flow and non-floating. (102670652)
    • Fixed grid sizing with inline-size containment and auto-fit columns is incorrectly sized. (108897961)
    • Fixed “inherit” as a variable substitution fallback when setting custom property. (136463977)
    • Fixed content skipped with content-visibility: auto to be findable. (141237620)
    • Fixed an issue wrapping an SVG at the end of a line when using text-wrap: balance. (141532036)
    • Fixed @font-face font-family descriptor to not allow a list of values. (142009630)
    • Fixed the computed value of a float with absolute positioning to be none when there is no box. (144045558)
    • Fixed buttons to not have align-items: flex-start by default. (146615626)
    • Fixed style container query on :host CSS pseudo-class to be correctly applied to slotted elements. (147684247)
    • Fixed @scope to create a style rule with a nested context. (148101373)
    • Fixed changing content-visibility from visible to hidden to repaint correctly. (148273903)
    • Fixed an issue where float boxes, selections, and carets were incorrectly painted inside skipped subtrees. (148741142)
    • Fixed incorrect getBoundingClientRect() inside skipped subtree on an out-of-flow positioned box. (148770252)
    • Fixed making
       and other elements use logical margins in the User-Agent stylesheet. (149212392)
    • Fixed space-around and space-evenly to fallback to safe center for align-content. (153403381)
    • Fixed the serialization of custom properties to provide the used value. (153675017)

    Canvas

    New Features

    • Added HDR support in WebGPU Canvas. (128164668)

    Resolved Issues

    • Fixed re-drawing a canvas with relative width when the parent element is resized. (121996660)
    • Fixed getContext('2d', { colorSpace: 'display-p3' }) in iOS Simulator. (151188818)

    Content Blockers

    New Features

    • Added support for unless-frame-url. (139456686)
    • Added support for the request-method content blocker trigger field. (148474901)
    • Added support for is Content Rule List Redirect. (150692793)

    DOM

    Resolved Issues

    • Fixed the serialization of CDATASection nodes in HTML. (150739105)

    Device Management

    New Features

    • Added support for a managed device to have a folder of managed bookmarks. (133974240)
    • Added support for a managed device to have managed new tab or new window page (home page, blank page, extension new tab page). (134425148)

    Editing

    New Features

    • Added support for rendering native selection UI inside scrolled content. (136988607)

    Resolved Issues

    • Fixed the selection UI to be clipped in overflow scrolling containers. (9906345)
    • Fixed selection issues caused by
      elements between absolute positioned elements. (123637358)
    • Fixed selection failing to update during auto or keyboard scrolling. (144581646)

    Forms

    Resolved Issues

    • Fixed form associated ElementInternals always reporting a custom Error when using setValidity. (115681066)
    • Fixed setValidity of Element Internals to handle missing optional anchor parameter. (123744294)
    • Fixed updating scrollbar appearance correctly for the page and
    • Fixed programmatically assigned File objects to display the correct filename in elements, even without a file path. (152048377)
    • Fixed labels inside elements to behave consistently with other browsers by using standard attribute matching instead of quirk mode handling. (152151133)
    • Fixed allowing the custom element itself to be passed as validation anchor in the setValidity() API. (154303420)
    • Fixed the intrinsic size of number inputs when the spin button width is a percentage value. (154680747)

    HTTP

    New Features

    • Added Safari support for WebSocket over HTTP/2 and HTTP/3. (104137162)

    Images

    New Features

    • Added support for HDR Images on iOS 26, iPadOS 26, macOS 26 and visionOS 26. (134397601)

    Resolved Issues

    • Fixed zoomed to not cause unwanted rounding of width and height. (150473104)

    JavaScript

    New Features

    • Added support for Regular Expression Pattern Modifiers. (131580854)
    • Added support for the notation option for Intl.PluralRules. (152149896)
    • Added support for Intl.Locale.prototype.variants getter. (153939662)

    Resolved Issues

    • Fixed Array.prototype.pop to throw an exception when the array is frozen. (141805240)
    • Fixed performance of Math.hypot() that was significantly slower than Math.sqrt(). (141821484)
    • Fixed RegExp#[Symbol.search] to throw Type Error when lastIndex isn’t writable. (146488846)
    • Fixed Array#indexOf and Array#includes to treat +0 and -0 as the same value. (148472519)
    • Fixed iterator helpers incorrectly closing iterators on early errors. (148774612)
    • Fixed Iterator.prototype.reduce failing with an undefined initial parameter. (149470140)
    • Fixed: Aligned f() = 1 behavior with other engines when not using strict mode. (149831750)
    • Fixed nested negated classes resulting in incorrect matches. (151000852)
    • Fixed DateTime string parsing for ISO8601 inputs. (153679940)
    • Fixed toIntegerOrInfinity to truncate negative fractional values to +0.0. (153939418)
    • Fixed the order of function’s special properties returned by Object.keys and Object.entries. (155607661)

    Lockdown Mode

    New Features

    • Added support for more web fonts in Lockdown Mode by replacing a fragile hard-coded allowlist with a safe parser that handles a broader range of fonts without compromising security. (149314760)

    Media

    New Features

    • Added support for in-band tracks in MSE. (129295806)
    • Added support for detachable MediaSource objects to allow for seamless switching between objects attached to a media element. (129298010)
    • Added support for MediaSource prefers DecompressionSession. (142761051)
    • Added support for WebCodec’s AudioEncoder and AudioDecoder. (142916087)
    • Added support for ALAC and PCM audio in MediaRecorder. (144145333)

    Resolved Issues

    • Fixed picture-in-picture to exit when the video element is removed. (123869436)
    • Fixed MP4 seeking with b-frames to prevent out-of-order frame display by suppressing frames with earlier presentation timestamps following the seek point. (140415210)
    • Fixed media elements on iPadOS to support the volume being changed by web developers, similar to macOS and visionOS. The :volume-locked pseudo-class can continue to be used for feature detection. (141555604)
    • Fixed seeking or scrubbing not always seeking to the time requested. (142275903)
    • Fixed stale audio buffer data after seeking when playing sound through an AudioContext. (146057507)
    • Fixed subtitle tracks with no srclang to be shown with the correct label. (147722563)
    • Fixed MediaSession to handle SVG icons with subresources. (150665852)
    • Fixed MediaCapabilitiesDecodingInfo.configuration to be correctly populated even when .supported is false. (150680756)
    • Fixed video elements with WebM object URLs causing MediaError code 2. (151234095)

    Networking

    New Features

    • Added support for on iOS while improving privacy on macOS. (144699889)

    PDF

    Resolved Issues

    • Fixed “Open with Preview” button to open a PDF in the Preview app. (148680145)

    Privacy

    New Features

    • Added support for preventing fingerprinting for known tracking scripts. (134227067)

    Rendering

    Resolved Issues

    • Fixed overflow: hidden to not clip filter: drop-shadow(). (72205047)
    • Fixed a list-style-position: inside list item marker to be rendered as the first child of the list item. (79587134)
    • Fixed using setDragImage with a fixed-position element, so that the drag preview bitmap includes the correct content. (90120656)
    • Fixed an issue to allow images in scroll containers to load when they are near the viewport rather than when they are intersecting the viewport. (118706766)
    • Fixed CSS filters to establish a containing block like transform does. (119130847)
    • Fixed a disappearing stretched image in a vertical flexbox layout. (135897530)
    • Fixed CSS gradient interpolation for “longer hue” gradients when an end color stop is omitted. (142738948)
    • Fixed will-change: view-transition-name to create a stacking context and a backdrop root. (146281670)
    • Fixed will-change: offset-path to create a stacking context and a containing block. (146292698)
    • Fixed dropdowns not displaying option labels. (146921617)
    • Fixed the text indicator sometimes getting clipped during a bounce animation. (147602900)
    • Fixed geometry values inside content-visibility: hidden subtrees. (148553259)
    • Fixed not marking content-visibility: hidden content for layout when targeting content-visibility: auto. (148663896)
    • Fixed incorrect ruby annotation positioning in sideways-lr. (148713073)
    • Fixed: Prevented hit testing content inside a skipped subtree. (148741508)
    • Fixed an issue where feMerge incorrectly positioned HTML elements when merging the same feMerge Node multiple times. (149431216)
    • Fixed box-shadow with spread on a border-radius box to scale the radii correctly. (149490613)
    • Fixed an issue in determining when a flex item should be used for percentage resolution during intrinsic width computation. (149615295)
    • Fixed an issue causing a element to disappear for one frame if a view transition occurs. (149709642)
    • Fixed within an not scrolling into the viewport on receiving focus for the second time. (150521759)
    • Fixed invisible controls when transformed due to incorrect coordinate space calculations for clipped child elements. (150526971)
    • Fixed centering text for elements with display: flex. (151148821)
    • Fixed showing a resize cursor even when text overlaps the resize control. (151309503)
    • Fixed SVG transform translate(X) not equal to translate(X,0). (151643419)
    • Fixed border-image repaint code is broken in some writing modes. (152396671)
    • Fixed rendering an image with a filter and mix-blend-mode only getting filtered but not mixed. (152460888)
    • Fixed box-shadow to repaint correctly in vertical-rl and horizontal-bt writing modes. (152803240)
    • Fixed border to no longer be adjusted in computed style for elements with native appearance. (153152167)
    • Fixed margin-trim to not trim inline margins on block-level boxes, regardless of their position. (153240895)
    • Fixed text-wrap-style to not constrain single line content. (153755326)
    • Fixed inputs within inline-block containers shifting vertically when text is deleted and re-entered into an input. (154094432)
    • Fixed baseline alignment participation to expand to items with automatic logical width in the alignment axis. (154311395)
    • Fixed grid containers incorrectly processing first-letter pseudo-elements when they should not contribute a first formatted line according to the CSS Grid specification. (154504582)
    • Fixed grid items hit-testing order to align with painting order. (154990290)

    Resolved Issues (SVG)

    • Fixed SVG paint server fallback handling for a non-existent URL. (144493507)
    • Fixed respecting the CSS image-rendering property when drawing an SVG. (144507619)
    • Fixed handling url(...) none to match the SVG Paint Server specification. (146454258)
    • Fixed ancestor bounding box for “disabled” and . (147455573)
    • Fixed: Improved handling of SVG images with subresources. (148607855)
    • Fixed handling of auto for rx and ry on . (153274593)

    Safari View Controller

    Resolved Issues

    • Fixed lvh and vh viewport units getting incorrectly sized relative to the small viewport in SFSafariViewController. (108380836)

    Scrolling

    Resolved Issues

    • Fixed selection does not update during autoscroll when selecting with a gesture or a mouse. (144744443)
    • Fixed autoscrolling for smooth scrolling while selecting text. (144900491)
    • Fixed inconsistent decimal values from getBoundingClientRect for sticky elements. (147163986)
    • Fixed scroll compensation transform to be applied before any other transforms. (155992464)

    Security

    New Features

    • Added support for enforcing the Integrity-Policy header on script destinations. (152244156)
    • Added new configuration to support Google Safe Browsing version 5 traffic to Safari and WebKit clients with the web browser entitlement. (154114595)

    Service Workers

    Resolved Issues

    • Fixed the ReadableStream cancel method not getting reliably called in Service Worker. (144297119)
    • Fixed an issue where navigation preload responses incorrectly retained a redirection flag when served from disk cache, causing security check failures during loading. (144571433)
    • Fixed structure Clone to preserve Error.cause. (152725880)

    Spatial Web

    New Features

    • Added support for the element for embedding interactive 3D models into web content in visionOS. (99085736)
    • Added playback support for 180º, 360º, and Apple Projected Media Profile formats. (140124611)

    Resolved Issues

    • Fixed various issues related to spatial audio not working in visionOS that could occur when repositioning Safari widows or moving a tab to a new window. (145661522)
    • Fixed the shape of gaze glow regions for elements with associated labels when the element has non-uniform border radii or if the element is styled with clip-path. (154258426)

    Text

    Resolved Issues

    • Fixed generating text fragments around text that contains newlines. (137109344)
    • Fixed generating text fragments when the selected text starts and ends in different blocks. (137761701)
    • Fixed bold synthesis to be less aggressive. (138047199)
    • Fixed Copy Link with Highlight not working when selecting text that is its own block and when that text exists higher up in the document. (144392379)
    • Fixed selections that start or end in white space not creating text fragments. (145614181)
    • Fixed and to use font-weight: bolder to match the Web Specification. (146458131)
    • Fixed Korean counter styles to be aligned with manual Korean numbering in lists. (152969810)
    • Fixed content spacing for elements with text-align: justify and white-space: pre-wrap applied. (154211168)

    URLs

    Resolved Issues

    • Fixed percent-encoding ^ in non-opaque URL paths. (146233526)
    • Fixed ensuring that opaque URL paths always roundtrip. (146848690)
    • Fixed making URL host and hostname setters handle @ correctly. (146886347)
    • Fixed Windows drive letter after file:/// when parsing URLs. (147381130)

    Web API

    New Features

    • Added support for the URLPattern API. (114658976)
    • Added support for scrollMargin in IntersectionObserver. (117527880)
    • Added toggle event support for dialog open and close. (122185814)
    • Added support for Trusted Types. (130065736)
    • Added support for the WebAuthn Signal API. (134729866)
    • Added support for Scoped Custom Element Registry. (144888965)
    • Added support for the Digital Credentials API. (145536102)
    • Added support for the File System WritableStream API. (145875384)
    • Added support for the alg parameter when importing or exporting Edward’s-curve based JSON Web Keys in WebCrypto. (147323269)
    • Added support for user Agent Allows Protocol in the Digital Credentials API. (153776127)

    Resolved Issues

    • Fixed: URL’s protocol setter should forbid switching non-special to special schemes. (82549495)
    • Fixed event dispatching to be done by the fullscreen rendering update steps. (103209495)
    • Fixed the mousemove event to be fired when the mouse stays in the document but there is no element. (120551245)
    • Fixed an overly broad fullscreen exit trigger by restricting it to only text-entry elements gaining focus, preventing non-text input types from causing unexpected fullscreen exits. (136726993)
    • Fixed WKDownload.originating Frame of downloads originated without a frame. (145328556)
    • Fixed fullscreen to use a single queue for event dispatching. (145372389)
    • Fixed the Progress Event members loaded and total to use the double type as per a recent specification change. (146356214)
    • Fixed Intrinsic Sizing of SVG embedded via to be invalidated on navigation. (147198632)
    • Fixed an issue where pending utterances do not receive an error event when speech synthesis is cancelled. (148731039)
    • Fixed escaping < and > when serializing HTML attribute values. (150520333)
    • Fixed making the SpeechRecognition interface available only within a secure context. (151240414)
    • Fixed the
    • Fixed IntersectionObvserver to notify observers asynchronously. (152684301)
    • Fixed setting inner HTML to correctly use a scoped custom element registry associated with the context object. (154333132)
    • Fixed attach Shadow throwing type error with a ShadowRoot document-fragment. (154658449)

    Deprecations

    • Removed the get SVGDocument() method from HTMLFrame Element to align with the specification. (133800070)

    Web Animations

    Resolved Issues

    • Fixed CSS scroll-driven animations on pages using requestAnimationFrame to animate correctly after navigating away and back to the page. (141528296)
    • Fixed computing the time offset as needed when applying accelerated actions. (142604875)

    Web Apps

    New Features

    • Added support for any website to become a web app on iOS or iPadOS. (113034903)

    Resolved Issues

    • Fixed the “Add to Home Screen” flow failing to load webpage data, preventing users from making new Home Screen web apps. (154655565)

    Web Extensions

    New Features

    • Added support to show Web Extension commands in the menubar on macOS and iPadOS. On macOS, users can customize the keyboard shortcut associated with a command in Safari Settings. (99049863)
    • Added support for web extensions in WebDriver. (144725173)
    • Added support for dom.openOrClosedShadowRoot(). (153118095)

    Resolved Issues

    • Fixed tabs.update to not remove history from the target tab. (134939755)
    • Fixed including the extension’s icon in the commands menu item and prevented customization using System Settings. (135360504)
    • Fixed a bug where the runtime.MessageSender origin parameter would be lowercased, differing from the result returned from runtime.getURL. (140291738)
    • Fixed high priority redirects to supercede low priority blocks for declarativeNetRequest. (145241581)
    • Fixed "exclude Matches" array in scripting.registerContentScripts() API getting ignored in Safari web extensions. (145489255)
    • Fixed a declarative Net Request bug that prevents redirects to extension resources. (145569361)
    • Fixed processing of declarative Net Request rules so that higher numbers are treated as higher priority. (145570245)
    • Fixed an issue causing wasm-unsafe-eval to not get parsed as a valid CSP keyword. (147551225)
    • Fixed permissions.getAll() to return the correct origins if all urls and/or hosts match pattern(s) have been granted. (147872012)
    • Fixed a non-fatal web Request error for non-persistent background content. (150051544)
    • Fixed allow All Requests declarativeNetRequest rules so that a higher priority correctly overrides a lower-priority block rule. (152746422)
    • Fixed CSS display: none matching everything still getting applied even after an ignore-following-rules action was matched. (152996225)
    • Fixed calling scripting.registerContentScripts() sometimes returning the error: “Error: Invalid call to scripting.registerContentScripts(). Failed to add content script.” (153001967)

    Web Inspector

    New Features

    • Added support for the console to log both the URI and the time when entering a new navigation context. (116901390)
    • Added support for automatic inspection of Service Workers. (118233905)
    • Added support for showing @scope styles in the Styles sidebar. (138840732)
    • Added support for console.profile in Worker. (144672019)
    • Added support for exporting and importing data from worker targets in the Timelines tab. (145330533)
    • Added a a badge for to quickly jump to the assigned node in the Elements tab. (148297936)
    • Added support for recording Workers in the Timelines tab. (151721737)
    • Added support for @starting-style. (153862298)

    Resolved Issues

    • Fixed pretty-printing CSS to avoid adding a space after the universal selector (*) when followed by a pseudo-class or pseudo-element, preventing unintended changes to CSS selector behavior. (71544976)
    • Fixed to show a separate overview for each target in the Timelines tab. (146356054)
    • Fixed a performance issue when blackboxing a large number of sourcemaps. (148116377)
    • Fixed the debugger to step over an await statement as though it is synchronous code. (149133320)
    • Fixed parsing sourcemaps asynchronously so that large sourcemaps do not block rendering. (151269154)
    • Fixed the Timelines tab to consistently display the target’s hierarchical path for JavaScript and Events to prevent confusion when working with multiple targets. (152357197)
    • Fixed clicking on the “+” button in the Sources tab sidebar doing nothing when Web Inspector is undocked. (153193833)
    • Fixed Quick Open dialog to show results when an Inspector Bootstrap script exists. (154947309)

    WebAssembly

    New Features

    • Added support for an in-place interpreter for Wasm. (113768719)

    WebGPU

    New Features

    • Added support for WebGPU. (145801580)

    WebKit API

    New Features

    • Added Screen Time support to WKWebView. (62901207)
    • Added support for a WebKit API in SwiftUI. (65050537)
    • Added support for local storage and session storage restoration APIs. (137700273)
    • Added support for applying backdrop-filter to content behind a transparent webview. (144100719)
    • Added a new obscured Content Insets property to WKWebView that allows developers to specify areas of the web view that are covered by browser UI elements like tab bars or toolbars. Set this property to automatically adjust the layout viewport so web content renders within the visible area without being obscured by overlapping interface elements. (155921447)

    Resolved Issues

    • Fixed a crash at launch in iOS Simulator for apps built for older deployment targets that bind to specific WebKit API. (152200884)

    Deprecations

    • Deprecated WKProcessPool and WKSelectionGranularity. (152447218)

    WebRTC

    New Features

    • Added support for exposing CSRC information for RTCEncodedVideoStream. (76548862)
    • Added support for the Speaker Selection API on iOS and iPadOS. (141436868)
    • Added serialization of RTCEncodedAudioFrame and RTCEncodedVideoFrame. (148244334)
    • Added support for Image Capture.grab Frame. (148425176)
    • Added support for RTCRtpScriptTransformer.generate Key Frame to take a rid parameter. (148592676)
    • Added support for RTCEncodedAudioFrame and RTCEncodedVideoFrame constructors. (149541424)
    • Added support for exposing a default system speaker device. (151761469)

    Resolved Issues

    • Fixed switching from speaker to receiver does not work the first time, but only the second time. (141685006)
    • Fixed enumerate Devices returning devices as available when permissions are denied. (147313922)
    • Fixed enumerate Devices to not check for device permission. (148094614)
    • Fixed WebRTC encoded transform to transfer to the RTC encoded frame array buffer. (148343876)
    • Fixed RTC encoded frame timestamp should be persistent. (148580865)
    • Fixed the configurationchange event to fire when a microphone’s audio unit changes its echo cancellation mode, ensuring web pages are notified of such changes to update track settings accordingly. (150770940)

    Deprecations

    • Removed the fec and rtx from WebRTC encoding parameters. (155046829)
    Original source Report a problem
  • September 2025
    • No date parsed from source.
    • Detected by Releasebot:
      Sep 29, 2025
    Apple logo

    macOS by Apple

    macOS Ventura 13.5 Release Notes

    Update your apps to use new features, and test your apps against API changes.

    The macOS 13.3 SDK provides support to develop apps for Mac computers running Ventura 13.5. The SDK comes bundled with Xcode 14.3, available from the Mac App Store. For information on the compatibility requirements for Xcode 14.3, see Xcode 14.3 Release Notes.

    • Fixed an issue where iPod shuffle (3rd and 4th generation) cannot be synced due to an unknown error (-244). (107114363)

    • Fixed an issue where NSHostingView would not appear when printed using NSPrintOperation. (109412691)

    Original source Report a problem
  • September 2025
    • No date parsed from source.
    • Detected by Releasebot:
      Sep 29, 2025
    Apple logo

    macOS by Apple

    macOS Ventura 13.4 Release Notes

    This release bundles macOS 13.3 SDK support with Xcode 14.3, guides app testing against API changes, and includes fixes for UI layout, Unicode bookmark resolution, and Image Renderer crashes in Share Links, plus a workaround for a Studio Display firmware update issue.

    Update your apps to use new features, and test your apps against API changes.

    The macOS 13.3 SDK provides support to develop apps for Mac computers running Ventura 13.4. The SDK comes bundled with Xcode 14.3, available from the Mac App Store. For information on the compatibility requirements for Xcode 14.3, see Xcode 14.3 Release Notes.

    Apple Studio Display firmware update starts showing progress but never completes. (107287354)

    Workaround: To install other updates including future macOS Beta Updates, click "More info..." in Software Update Settings, uncheck Apple Studio Display firmware update, and click "Install Now."

    Fixed increasing column-count above 2 not updating the layout. (71808738)

    Fixed a regression in macOS Ventura 13.3 where a security check causes bookmark resolution to fail when the path contains Unicode characters stored with composed normalization. As an example, this prevented files in Finder from opening when double-clicked. (107550080)

    Fixed: Using Image Renderer within a Share Link's preview closure crashed the running application. (107763234)

    Original source Report a problem
  • September 2025
    • No date parsed from source.
    • Detected by Releasebot:
      Sep 29, 2025
    Apple logo

    macOS by Apple

    macOS Tahoe 26.1 Beta Release Notes

    macOS Tahoe 26.1 SDK with Xcode 26.1 enables Tahoe 26.1 beta app development. Recompile to adopt API changes and fixes across SwiftUI, assets, Game Controller, and sudo. Some known issues remain in Apple TV app.

    Update your apps to use new features, and test your apps against API changes.

    The macOS 26.1 SDK provides support to develop apps for Mac computers running Tahoe 26.1 beta. The SDK comes bundled with Xcode 26.1, available from the Mac App Store. For information on the compatibility requirements for Xcode 26.1, see Xcode 26.1 Release Notes.

    Apple TV app

    Known Issues

    • In Apple TV app on macOS, the Search bar is missing. (159419539)

    Background Assets

    Resolved Issues

    • Fixed: Asset Pack Manager .url(for:) unexpectedly throws an error when looking up the URL for a locally available asset file. (157959878) (FB19512759)

    Game Controller

    Resolved Issues

    • Fixed: The time returned by GCPressed State Input .last Pressed State Timestamp is not in the correct time domain. (159124910)

    sudo

    Known Issues

    • There are now added security checks when loading the /etc/sudoers configuration and /etc/sudoers.d folder. When the owner is not set to root, the configuration is ignored and sudo might not work. (155330149) (FB18698477)
    • Workaround: Change the files to proper owner using Recovery and chown 0: 0 /etc/sudoers.

    SwiftUI

    Resolved Issues

    • Fixed: The navigation Link Indicator Visibility modifier crashes when run on iOS 17, iOS 18 and aligned releases.
      You must recompile your app against the 26.1 SDK to receive this fix. (158236264) (FB19613386)

    See Also

    • macOS 26
    • mac OS Tahoe 26 Release Notes

    Update your apps to use new features, and test your apps against API changes.

    Original source Report a problem
  • September 2025
    • No date parsed from source.
    • Detected by Releasebot:
      Sep 29, 2025
    Apple logo

    macOS by Apple

    macOS Tahoe 26

    macOS Tahoe 26 SDK launches with Xcode 26, enabling apps for Tahoe 26 and bringing features like Recovery Assistant, Foundation Models, Accessibility labels in App Store, Sparse Image support, and various Catalyst, Metal, and SwiftUI updates. It also deprecates AGL, updates many subsystems, and fixes numerous issues across Finder, Photos, Messages, and more.

    Overview

    The macOS 26 SDK provides support to develop apps for Mac computers running Tahoe 26. The SDK comes bundled with Xcode 26, available from the Mac App Store. For information on the compatibility requirements for Xcode 26, see Xcode 26 Release Notes.

    General

    New Features

    • Recovery Assistant is a new way to recover your device if it doesn’t start up normally. It can look for problems and attempt to resolve them if found. (151856202)

    AGL

    Deprecations

    • AGL is no longer available in the macOS SDK. AGL was previously used to present OpenGL content in Carbon apps, and Carbon no longer exists in the SDK. AGL symbols now do nothing on 64-bit systems, including Intel x86_64 and Apple Silicon Macs. It is safe to remove any AGL usage and stop linking AGL. OpenGL still remains in the SDK. (153913819)

    AirPlay

    Known Issues

    • AutoMix song transitions might not work as expected when streaming with AirPlay. (155925891)

    App Store

    New Features

    • A new Accessibility section has been added to the App Store product pages that highlights accessibility features within apps and games. These Accessibility Nutrition Labels give users a new way to learn if an app will be accessible to them before they download it, and give developers the opportunity to better inform and educate their users on features their app supports. (138344118)

    Resolved Issues

    • Fixed: Updating iOS or iPadOS apps on macOS from the App Store might hang with a spinning progress indicator or with the progress partially complete. (152878930)

    AppKit

    Resolved Issues

    • Fixed: With TextKit, the text Range By Intersecting With Text Range method in NSTextRange does not return nil for non-intersecting ranges. (138067979)

    Apple Intelligence

    New Features

    • The Foundation Models framework provides you with direct access to the on-device large language model at the core of Apple Intelligence. For release notes about the framework, see the Foundation Models framework section below. (139996377)

    Resolved Issues

    • Fixed: In Image Playground and Genmoji, the new modifiers to customize appearance do not work for Japanese-language users. Image creation is blocked when attempting to add modifiers to its appearance. (151833204)
    • Fixed: Model quality output degrades after extended, repeated inferences of the same adapter. (152468267)

    Known Issues

    • Xcode features like Predictive Code Completion and the coding assistant might require Apple Intelligence to be enabled. (150889516)
      Workaround: Enable Apple Intelligence in System Settings.

    AssistantSchemas

    Resolved Issues

    • Fixed: If you have adopted any of the following email AssistantSchemas, you will experience a compilation error due to a parameter type change: create Draft, update Draft, reply Mail, forward Mail, message, and draft. (148633307)

    AuthenticationServices

    New Features

    • ASAuthorizationControllerRequestOptions.preferImmediatelyAvailableCredentials now works for passkey registration requests. This request only shows UI when the device is immediately able to create a passkey; otherwise, no UI is shown. (150688929)

    AVFoundation

    Resolved Issues

    • Fixed: AVPlayerLayer does not ensure a valid video frame is always displayed during item replacement, as the isReadyForDisplay property does not remain true during transitions. (151902458)

    Background Assets

    Resolved Issues

    • Fixed: The system might not update downloaded asset packs as frequently as is expected for apps that internal testers install from TestFlight. (143281558)
    • Fixed: Asset pack downloads might fail unexpectedly or stall indefinitely, including across reboots. (151498902)
    • Fixed: The system might not deliver status updates to your app for ongoing asset pack downloads. (151647839)
    • Fixed: An iOS or iPadOS app on an Apple silicon Mac might appear openable in TestFlight even while its essential assets are still being downloaded. (151709449)
    • Fixed: Pausing and resuming an app installation or update while the system is downloading essential asset packs might cause the installation or update to stall indefinitely. (151942388)
    • Fixed: The installation of large asset packs might fail. (153128086)

    Catalyst

    New Features

    • For Catalyst apps built with the latest SDK, UINavigationItem.title is the window title rather than the window subtitle. (142423319)
    • For Catalyst apps built with the latest SDK, UIBarButtonSystemItem.fixedSpace and .flexibleSpace are now bridged to NSToolbar. The system no longer ignores fixed and flexible spaces when UIBarButtonItems are automatically converted to the window toolbar in the Mac idiom. However, the width specified via fixedSpaceItem(ofWidth:) is ignored. (145262754)

    CloudKit

    Resolved Issues

    • Fixed: CloudKit sharing URLs do not launch third-party apps. (151778655)

    Contacts

    Known Issues

    • Characters for Monogram Avatars in some non-English languages might show up as unexpected symbols. (154824077)

    CoreData

    Resolved Issues

    • Fixed: In beta 5 SDK, CoreData changed several Sendable annotations to resolve compatibility issues with Swift 6’s new MainActor default isolation feature. These changes include marking NSManagedObject as NS_SWIFT_NONISOLATED NS_SWIFT_NONSENDABLE, marking NSManagedObjectContext as NS_SWIFT_NONISOLATED NS_SWIFT_SENDABLE, and requiring NS_SWIFT_SENDABLE closures for the family of perform, performBlock, performBlockAndWait and similar methods. These changes are ABI compatible with past releases but might introduce new warnings while building source code that violates the longstanding CoreData concurrency guidelines.

    • NSManagedObject are mutable reference types inextricably related to others in a graph and cannot be made Sendable. They are expected to be isolated to the scope of the NSManagedObjectContext that creates or fetches them.

    • NSManagedObjectContext is a style of actor which encapsulates its own dispatch queue. While it’s impermissible to use many methods on NSManagedObjectContext from other threads, it is permissible to pass references around to invoke the performBlock family of methods, for the purpose of routing a Sendable closure to its managed dispatch queue. CoreData supports a user default -com.apple.CoreData.Concurrency.Debug 1 which can be used to enable additional assertions. (153848710) (FB18216198)

    Deprecations

    • This release removes support for the following deprecated NSPersistentStore option keys:
      ◦ NSPersistentStoreUbiquitousContentNameKey
      ◦ NSPersistentStoreUbiquitousContentURLKey
      ◦ NSPersistentStoreUbiquitousPeerTokenOption
      ◦ NSPersistentStoreRemoveUbiquitousMetadataOption
      ◦ NSPersistentStoreUbiquitousContainerIdentifierKey
      ◦ NSPersistentStoreRebuildFromUbiquitousContentOption
      These keys have been deprecated for more than a decade. Affected apps rebuilt with the iOS or macOS 26 SDK will get errors. Apps built against older SDKs will log warnings when opening the store.

    • The on-device persistent store will be fully usable after these keys are removed from options dictionary, albeit without syncing. For data syncing, these APIs were superseded by NSPersistentCloudKitContainer in iOS 13 and SwiftData in iOS 17. If absolutely necessary, the iCloud content remains accessible in the containers with the last baseline as a .zip archive file. (157297746) (FB19286235)

    Disk Images

    New Features

    • macOS now supports the Apple Sparse Image Format (ASIF). These space-efficient images can be created with the diskutil image command-line tool or the Disk Utility application and are suitable for various uses, including as a backing store for virtual machines storage via the Virtualization framework. See VZDisk Image Storage Device Attachment. (152040832)

    Documents

    Known Issues

    • EPUB files are shown with an app icon rather than a document icon. Other document types might also be affected. The icon shown is the icon of the app set to open the document. The document opens normally. (154800649)

    Finder

    Resolved Issues

    • Fixed: Finder does not display Dark Mode app icons or tinted folder colors when the Folder Color setting in System Settings > Appearance is set to Automatic. (152193702)

    Known Issues

    • Users who enable path bar or status bar in Finder and use list view might be unable to access the last item in the list. (151917092)
      Workaround: Disable path bar or status bar temporarily.

    Foundation

    New Features

    • Interpolating non-localized types into a LocalizedStringResource/String(localized:)/AttributedString(localized:) value will now display a deprecation warning instead of potentially falling back to a fully-unlocalized string. Provide a localized value to interpolate into the text instead, or silence the warning by wrapping the unlocalized value in a call to String(describing:). (126876158)
    • ISO8601Format Style now allows fractional seconds, regardless of the setting of includingFractionalSeconds. Additionally, ISO8601Format Style now allows hours-only time zone offsets. (136950769)

    Resolved Issues

    • Fixed: Functions that initialize a string from a C-string pointer do not validate that the provided encoding is a valid encoding for C-strings. (143756086) (FB16417968)

    Foundation Models framework

    New Features

    • LanguageModelSession.prewarm() now caches the instructions and prefix of your prompt, in addition to loading system resources. The best place to use prewarm() is when your app is waiting for user interactions that might trigger response generation. This will reduce the time to the first-generated token. (152381043)
    • #Playground in Xcode now allows for filing feedback for Foundation Models framework responses. (153770707)
    • The .contentTagging use case now supports non-English languages. You can query the supported languages using SystemLanguageModel(useCase: .contentTagging).supportedLanguages. Tags will be generated based on the language of the prompt. (155801948)
    • When you use guided generation, the framework now supports programmatically detecting when and why the model refuses to respond when the content is not unsafe. In previous beta releases, this manifested as a guardrail violation. Now you can catch a specific error case LanguageModelSession.GenerationError.refusal and obtain a model-generated explanation for why it refused to respond. Depending on your use case, you might be able to display the explanation in your UI. (156086748)
    • In GeneratedContent, you can use the isComplete property to check whether the content was fully generated by the model. (156109416)
    • When using guided generation, you can now access the underlying weakly typed GeneratedContent by accessing the rawContent property on Response or ResponseStream. (156351123)
    • New guardrails mode Guardrails.permissiveContentTransformations allows transformations of content that might otherwise violate the default guardrails. Use this mode for text-to-text tasks, such as summarization and rewrite. (156721060)

    Resolved Issues

    • Fixed: When you pass includeSchemaInPrompt: false to respond or streamResponse, it is not respected. (151926006)
    • Fixed: Custom @Generable types named Number or Boolean might not function reliably in guided generation. (152280144)
    • Fixed: Tool calling might not function properly if primitive types such as Int, String, or Bool are used as the argument. (152318534)
    • Fixed: In an Xcode Playground, requests made to the model might receive a “rate limit exceeded” error. (152325506)
    • Fixed: Model requests in macOS command line tools might experience rate limiting. (152681332)
    • Fixed: Generable types with a recursive definition lead to a SchemaError when generating a response. (153147722) (FB17962270)
    • Fixed: A prompt containing Chinese might lead to error “Unsupported language zh-hans detected”. (153151710) (FB17963656)
    • Fixed: Generable types cannot be made public due to a bug in the Generable macro. (153216183) (FB17990794)
    • Fixed: Requests to the model might experience rate limiting, even when the device is connected to power. (153216632)
    • Fixed: The Foundation Models framework cannot be imported when building for Mac Catalyst. (153255533) (FB18004324)
    • Fixed: Creating a LanguageModelSession with tools that have duplicate names leads to a fatal error. (153426645) (FB18074984)
    • Fixed: When using guided generation and tool calling together, some requests might lead to LanguageModelSession.GenerationError.decodingFailure due to a bug in constrained decoding. (153773704) (FB18190120)
    • Fixed: When creating a session with a transcript, any new tools you attach to the session might not be used. Additionally, if your transcript contains tools from a previous session, those tools must be passed as the tools: argument in the new session in order to function properly. (154904647)
    • Fixed: Some prompts erroneously return an error indicating a guardrail violation (FoundationModels.LanguageModelSession.GenerationError error 2). (155273863)
    • Fixed: When using tool calling with guided generation, tools might not get called. (155313086) (FB18691470)
    • Fixed: Generating an enum with associated values through a dynamic schema crashes with a SchemaError. (155957346) (FB18878026)
    • Fixed: In some cases, requests you make to the model erroneously throw a guardrail Violation for all prompts due to model assets not fully downloaded. (156223847) (FB18944619)

    Known Issues

    • Some instructions and prompts to the model might not lead to expected responses. Use Feedback Assistant to report satisfactory or unsatisfactory cases. When applicable, you can use LanguageModelSession.logFeedbackAttachment() to serialize the feedback to a JSON file and attach it to Feedback Assistant. (152318091)
      Workaround: Refine your instructions and prompts using #Playground in Xcode. When applying guided generation with a @Generable type, add @Guide with a custom description on properties to steer the model’s responses.
    • If Argument type is an enum with associated type, tools will encounter a ToolCallError with an underlying decoding Failure when the model attempts to call it. (156723065)
      Workaround: Wrap the enum in a struct.

    Full Screen

    Resolved Issues

    • Fixed: You might experience layout issues when going full screen with certain apps on a Mac. (151266898)

    Game Controller

    New Features

    • For supported game controllers, pressing the Home button once opens the Game Overlay. Set preferredSystemGestureState to receive additional Home button press events. (137780853)
    • Pair multiple Apple devices to your DualSense or DualSense Edge controller and easily switch between them directly using the controller or Bluetooth settings. See this PlayStation blog post for details. (137782227)

    Game Mode

    Resolved Issues

    • Fixed: The LSSupportsGameMode Info.plist key is currently ignored on macOS. (153125166)

    Known Issues

    • Game Mode will not activate for application binaries spawned directly from Terminal. (153127050)
      Workaround: Use the open command to launch your game from Terminal. You can pass arguments, change environment variables, and redirect standard output/error when using this command, such as open My Game.app --stdout /tmp/mygame.out --stderr /tmp/mygame.err --env MTL_HUD_ENABLED=1 --args -My Game Argument -Another Argument. See man open for more information.

    Image Playground

    Resolved Issues

    • Fixed: The Create Image action fails to appear in Shortcuts app and Spotlight. (153235442)

    Intel Macs

    Resolved Issues

    • Fixed: Safe and Recovery modes on Intel Macs have performance and graphical issues, though the modes are still functionally usable. Various elements on the screen, such as menus, alerts, and Control Center, might partially display. Scrolling and other operations in some apps cause visual glitches. (149419875)

    Keyboard

    New Features

    • In the “ABC – India” keyboard layout, the ₹ (rupee) symbol has replaced the ` (back tick) symbol. To type the back tick symbol that’s commonly used in Markdown and some programming contexts, you can use the ⌥ (option) modifier in conjunction with the same key or you can use an alternative layout like “ABC”. (149026394)

    Maps

    Resolved Issues

    • Fixed: Users cannot plan a route that leaves at or arrives by a future time. (150947515)
    • Fixed: If you tap to expand the “Recents” section and there are more recent places than can fit in the view, the Terms & Conditions link will disappear, making it inaccessible. (152197565)

    Known Issues

    • Custom tap gesture callbacks registered using onTapGesture might not work as expected on a SwiftUI Map. (157612948) (FB19394663)
      Workaround: Use simultaneousGesture(TapGesture().onEnded {}) to register the callback.

    Memory Tools

    Known Issues

    • Leaks might be falsely reported by memory analysis tools when a target has instances of types that use Obj-C properties implemented in Swift using bridged types with @objc @implementation. Memory analysis tools include the leaks CLI tool, Leaks instrument, and Xcode memory graph debugger. (157798911)

    Menu Customization

    Known Issues

    • Menu customization in apps like Notes and Mail might have some visual glitches. (148472167)

    Messages

    Resolved Issues

    • Fixed: Sent translated messages do not get re-translated after editing. (149401758)
    • Fixed: In regions where Screen Unknown Senders is on by default, notifications for message categories are erroneously off by default. (149450560)
    • Fixed: In one-to-one conversations, background changes might be attributed incorrectly after quitting and re-opening the Messages app. (150548773)
    • Fixed: Transaction or Promotion messages filtered by a Message Filter App Extension might be badged as “Unknown” in the conversation list rather than “Transaction” or “Promotion”. (151869409)

    Known Issues

    • Users on older devices won’t see compatibility messages for polls, so they might be unaware a poll was sent. (148545742)
    • Expanding Conversation Details causes the list of conversations to collapse. (149436051)
      Workaround: Closing Conversation Details will bring back the list.
    • Scrolling through a Messages conversation might be sluggish. (152453655)
      Workaround: Quit and relaunch Messages.

    Metal

    New Features

    • Metal 4 is now supported. See Metal for additional details. (113781091)

    Resolved Issues

    • Fixed: If you’re using Metal 4 command encoders, you should add render and compute pipelines that support indirect command buffers to your residency sets. The Metal device driver currently does not enforce this requirement. (145066238)
    • Fixed: Metal Shader Validation might not work with shaders that use Metal Performance Primitives. (149263281)

    Known Issues

    • Metal Shader Validation might not work with Metal 4 ray tracing pipelines. (152520367)
      Workaround: Selectively disable Shader Validation for pipelines using ray tracing. See documentation.

    MetalFX

    Resolved Issues

    • Fixed: Denoised temporal upscaling for MTL4CommandBuffer’s MTL4FXTemporalDenoisedScaler does not work. (146436460)
    • Fixed: Temporal upscaling for MTL4CommandBuffer’s MTL4FXTemporalScaler does not work. (146436741)

    Music

    Resolved Issues

    • Fixed: You might experience audio issues when using the Music app and changing the underlying audio device sample rate. (152465491)

    NetworkExtension

    Deprecations

    • Algorithms DES, 3DES, SHA1-96 and SHA1-160 as well as Diffie-Hellman groups less than 14 are no longer supported for IKEv2 VPNs. (148767790)

    Notifications

    Resolved Issues

    • Fixed: The icons for Calendar notifications might appear washed out. (151658533)

    NSLog

    New Features

    • Dynamic string data in format arguments for NSLog will be redacted to in the Unified Logging System. This specifically targets data that enters the Unified Logging System via NSLog, and will not impact the Xcode console or NSLog’s stdout output. If you wish to log un-redacted data to the Unified Logging System please use the “os_log” or “Logger” interfaces. (137129180)

    NSTextView

    New Features

    • NSTextView supports sound files, such as QuickTime Audio, attached via NSTextAttachment, by utilizing AVPlayer for playback inline. (140224296)

    Object Capture

    New Features

    • A new algorithm significantly improves PhotogrammetrySession reconstruction quality of low-texture objects not captured with the ObjectCaptureSession front end. It will be downloaded and cached once in the background when the PhotogrammetrySession is used at runtime. If network isn’t available at that time, the old low quality model will be used until the new one can be downloaded. There is no code change needed to get this improved model. (145220451)

    Photos / Photos Picker

    Known Issues

    • Invoking search in the Photos picker causes the picker to crash. Or invoking Search in a collection in Photos causes Search to crash. (152403781)
      Workaround: Use the Photos app to search for the content. Once you’ve found it, you can share or copy it to continue with the workflow. Use Search in the Library tab to find the content.

    Photos Picker

    Resolved Issues

    • Fixed: On macOS, the Options menu is missing in the Photos picker. Ability to exclude Location and Captions information cannot be set when using the Photos picker. (152336867)

    Quick Look

    Resolved Issues

    • Fixed: Variants menu does not open in Quick Look while trying to view different configurations of a USDZ asset made with Variants. (154817946)

    RealityKit

    Resolved Issues

    • Fixed: Entities with a PortalComponent ignore any ModelSortGroupComponent and instead use a fixed rendering order.
      In case of sorting rendering issues with portal surface, explicitly add a ModelSortGroupComponent using a .planar UIAlwaysBehind sort group. (149899345)
    • Fixed: ParticleEmitterComponent does not render properly on iOS, macOS, and tvOS. (152201501)
    • Fixed: The animate functions on Entity and RealityViewContent do not start animations. (152456435)

    Known Issues

    • Some properties and components do not update SwiftUI Views when accessed through the .observable property on Entity. (147063698)

    Rosetta

    New Features

    • You can test that your apps no longer depend on Rosetta by setting the boot-arg nox86exec=1. When this boot-arg is set, any process that would normally run through Rosetta will immediately crash on launch and generate a crash report. This can by set by running sudo nvram boot-args="nox86exec=1" and then rebooting the system. (136764433)

    RTL

    Known Issues

    • You might experience layout issues with RTL languages. (151009428)

    Safari

    Resolved Issues

    • Fixed: macOS 26 users might experience Safari page loading issues on facebook.com and potentially other websites, due to a new race in the network stack.
      Affected users should update to macOS 26 beta 5 and clear related cache by visiting Safari > Settings… > Privacy > Manage Website Data…, then deleting entries for facebook.
    • and fbcdn.net resources. Restart Safari. Users will need to re-login to the website. Users experiencing issues on other websites can consider clearing cache for those websites or clearing all website data. (153547547)

    Known Issues

    • Black lines appear at the bottom of inactive tabs in Safari. (153681371)

    Search

    Resolved Issues

    • Fixed: Some applications might quit unexpectedly when using search. The issue will be resolved automatically with an over-the-air update when connected to Wi-Fi. (157464670)

    Secure Text Fields

    Resolved Issues

    • Fixed: On a Mac with a Touch Bar, a secure text field swallows keyboard events in some contexts. For example, this might occur when creating a new user in the Users & Groups settings pane. (151268030)

    Security

    Deprecations

    • For apps linked on or after iOS 26 and macOS 26, the default minimum TLS version of URLSession and Network frameworks has changed from 1.0 to 1.2. If your process connects only to your servers, verify that they support TLS 1.3 or TLS 1.2. If your process needs to connect to 3rd-party servers which cannot be updated to support newer versions of TLS, restore the previous behavior through URLSession and Security framework APIs: URLSessionConfiguration.tlsMinimumSupportedProtocolVersion and sec_protocol_options_set_min_tls_protocol_version. (135996267)

    Settings

    Known Issues

    • Users who enable Reduce Transparency might encounter flickering in background windows or the Dock. (152060485)
    • If System Settings > Desktop & Dock > Displays have separate Spaces is disabled, WindowServer will crash at login time. (153570422)
      Workaround: Boot into Recovery, then mount the Data volume on your partition. Launch Terminal and run rm /Volumes/<Partition Name "Macintosh HD">/Users//Library/Preferences/com.apple.Spaces.plist.

    Setup Assistant

    Resolved Issues

    • Fixed: 802.1X Wi-Fi networks are not saved during initial device setup. (147787689)
    • Fixed: On Intel Macs, the background on the Hello or Welcome screens might be black. (152107967)
    • Fixed: Visual pairing for Quickly Set Up Mac does not work. (152326903)
    • Fixed: On the 13” MacBook Air, Hello might be offset from the wallpaper during initial device setup. (152447100)

    Shortcuts

    Resolved Issues

    • Fixed: Titles for some Messages actions and filter properties display incorrectly. (153740390)

    Siri

    Resolved Issues

    • Fixed: Siri Visual Responses might be illegible behind certain backgrounds. (151682699)
    • Fixed: Knowledge requests that are handled by ChatGPT might produce results that are based on stale data. (154889929)

    StoreKit

    New Features

    • There is a new option for the Transaction.Offer.PaymentMode API called oneTime. This new case supports the method of payment for In-App Purchase offer codes. (142501142)
    • Subscription promotional offers can now be signed using JWS and attached to a purchase using the new PurchaseOption.promotionalOffer(_:compactJWS:) API. There are also new corresponding SwiftUI APIs in StoreKit to attach a signed promotional offer or a signed introductory offer override to a view. (143395736)

    Resolved Issues

    • Fixed: Subscription status updates might not be reported correctly if the subscription went into billing retry in StoreKit Testing in Xcode. (133799135) (FB14789854)
    • Fixed: Price of offers is not displayed in the payment sheet when making a purchase to a subscription with a higher level of service in StoreKit Testing in Xcode. (140635780) (FB15980635)
    • Fixed: Renewal transactions might be created regardless of the Ask to Buy status of the purchase request in StoreKit Testing in Xcode. (145242611)
    • Resolved an issue with the Identifiable conformance of the PurchaseIntent API. Conformance to this protocol now begins starting with iOS 18.0 and macOS 15.0. (148751460) (FB17151889)
    • Fixed: SKProduct from the original StoreKit API fails to decode products when using StoreKit Testing in Xcode. (150851879)
    • Resolved an issue where the id member of the PurchaseIntent API was only available starting with iOS 18.0 and macOS 15.0, and no longer available for Mac Catalyst. It is now available starting with iOS 16.4, macOS 14.4, and Mac Catalyst 16.4. The PurchaseIntent conformance to Identifiable remains unchanged. (152858281) (FB17829716)
    • Fixed: Transactions might not finish, resulting in subsequent purchases of the same product failing. (155449267)

    Swift Charts

    New Features

    • Available in iOS 26, macOS 26, and visionOS 26, Chart3D allows you to visualize your data and mathematical surfaces in 3D, powered by RealityKit. (148361385)

    Resolved Issues

    • Fixed: Annotations on a scrollable chart might be clipped. (109164195)

    Swift Compiler

    Resolved Issues

    • Fixed: The Swift compiler might crash when building a project that initializes a UISymbolContentTransition. (150858005)

    Swift Standard Library

    Resolved Issues

    • Fixed: The span properties of InlineArray and CollectionOfOne trap at runtime.
 (147500528)
    • Fixed: mutating members of MutableSpan and MutableRawSpan are unavailable. (152467655)

    Known Issues

    • lengthOfBytes(using: .utf16) and -lengthOfBytesUsingEncoding: NSUTF16StringEncoding/NSUnicodeStringEncoding might produce an incorrect result when used on Swift Strings, including NSStrings formed by bridging Swift Strings to Objective-C. (156675395)

    SwiftUI

    New Features

    • On macOS, an animated SwiftUI.Transaction that changes a Window’s size animates the window’s frame, alongside the frame of the hosting view. (61158194)
    • You can now use View/findNavigator(isPresented:), View/findDisabled(:), and View/replaceDisabled(:) to control the presentation of the Find Bar in TextEditor on macOS 26. (85308161)
    • ControlSize now conforms to Comparable, and View/controlSize(_:) can now be used to clamp the environment’s controlSize to a given range. (FB11465757)
    • In apps built with the macOS 26 SDK, Section footers within a Form of the Grouped Form Style now have leading alignment, default font, and foreground styles. Use the sectionActions(content:) view modifier on your Section to supply section actions, which maintain a trailing placement in macOS. In iOS and iPadOS, each section action displays as its own form row. (129868475)
    • Text, TextEditor, and TextField now by default use string contents to determine the appropriate base writing direction for each paragraph, instead of relying on layout directionality. To specify the writing direction explicitly on a per-paragraph basis, use Foundation’s AttributedString.writingDirection attribute. To make the base writing direction follow the layout direction for an entire view, apply the view modifier .writingDirection(strategy: .layoutBased). (134821288)
    • In apps built with the macOS 26 and iOS 26 SDKs, a Picker view of a style that produces a button-like control now has a fitted sizing behavior by default. If needed, use the buttonSizing(_:) view modifier to make the Picker flexible and fill the available width of its container. (136649748)
    • The default label style for macOS menu content is now .titleAndIcon. (137306701)
    • The implementation of some macOS buttons no longer uses NSButton. (139105246)
    • When linking news SDKs, NavigationLinks produce a single view, rather than a list of views in view list contexts. This change improves performance of many NavigationLinks in lazy containers like List. However, if you are relying on ContainerValues propagating out of the label view of a NavigationLink, or similarly relying on ContainerValues of a ButtonStyle used to style a link, the containerValue(:,:) modifier should be moved outside of the link. Below is a minimal example that demonstrates the behavior difference: (140283584)
    • List no longer ignores the vertical insets of rows with a height close to the default minimum height on iOS and visionOS. Use listRowInsets(::) to change the vertical row insets. (141160852)
    • In NavigationSplitView and TabViews configured as sidebar Adaptable, the view trailing the sidebar’s safe area is inset in the width of the sidebar. It can display content outside its safe area, underneath the sidebar. (141222137)
    • In macOS, a Form of the .grouped style now has a more compact appearance when placed within a sidebar or inspector. (141534926)
    • Reuse existing AppKit gesture recognizers in SwiftUI using NSGestureRecognizerRepresentable, and refer to them by name using name. (142918018)
    • On macOS, after linking new SDKs, the style of search fields with SearchFieldPlacement.sidebar is now fixed to the toolbar. Previously the search field would scroll as the first element in the list. (143546967)
    • In apps that adopt the new design, the buttonBorderShape(_:) view modifier can be used to customize the shape of bordered buttons. Previously this modifier only affected buttons in Widgets in macOS. (145773436)
    • The buttonSizing(_:) view modifier specifies the sizing behavior of Button, Picker, Menu, and other button-producing controls. If you are using Spacer views or an infinite-width frame in your Button label to create a flexible button, apply buttonSizing(.flexible) to the Button instead. (146327046)
    • In macOS apps that adopt the new design, buttons of the .bordered style can be tinted with the tint(_:) view modifier. (150127133)

    Resolved Issues

    • Fixed: TextEditor’s undo stack might contain invalid operations for applications with multiple TextEditor views. (83650197) (FB9662463)
    • Fixed: In macOS, Button inherits its environment’s font instead of using a default font appropriate for its controlSize. Apply view modifiers to the button’s label to customize its font. (92434021)
    • Fixed: In macOS, the value label of MenuPickerStyle does not truncate when it is long enough to cause the button to be wider than its container. (93843377)
    • Fixed: The menu content of some Menu views does not update as the result of a state change. (106878937)
    • Fixed: View.onHover(perform:) and View.onContinuousHover(coordinateSpace:perform:) affect hit-testing for gestures. Gestures are not received if one of these view modifiers is used within an overlay. (108560020)
    • Fixed: Section views without isExpanded binding are collapsible in a sidebar-styled List on macOS. (115797465) (FB13192271)
    • Fixed: listSectionSpacing does not work correctly for sections that have headers and footers. For more control over the list section layout, use the listSectionMargins modifier. (140929163)
    • Fixed: On iOS, navigationSplitViewColumnWidth() does not respect the specified minimum and maximum column widths. (143529326)
    • Fixed: Multiple title views in sidebar list labels on iOS are not styled hierarchically as title and subtitle. (144253754)
    • Fixed: In custom layouts that do not implement explicit Alignment(of:in:proposal:subviews:cache:), alignment guides do not work correctly for a right-to-left layout direction. (145073832)
    • Fixed: Applying a bold modifier to Text resets the weight configuration. The interaction of bold and weight is not consistent between Text and Font. (147270079)
    • Fixed: Environment updates from outside of a popover might fail to propagate into the popover’s content view. (147954025)
    • Fixed: On platforms supporting edge-attached and non-edge-attached sheets, non-edge-attached sheets present erroneously as full-screen covers when .navigationTransition(.zoom...) is specified. If you wish to keep the full-screen cover in compact size classes, configure a sheet with: .sheet(...) { ContentView() .navigationTransition(.zoom...) } .presentationSizing(.page) .presentationCompactAdaptation(.fullScreen) (150455117)
    • Fixed: If Default Actor Isolation is set to MainActor, @Animatable macro emits concurrency warnings in Swift 5 language mode and does not compile in Swift 6 language mode. (152524435)
    • Fixed: Gestures do not have the same lower priority over the view’s existing UIGestureRecognizers and NSGestureRecognizers as they do over the view’s existing SwiftUI gestures.
      In apps built with iOS 26, macOS 26, tvOS 26, and visionOS 26, use highPriorityGesture(:isEnabled:) to make sure your gesture takes precedence over the view’s existing gestures, or use simultaneousGesture(:isEnabled:) to give your gesture the same priority as the view’s existing gestures. (155581361)

    Deprecations

    • Text concatenation using the + operator is deprecated because it makes it hard to create localized strings that are correct across all languages. Use Text interpolation instead. See documentation on Text for more info on how to produce localized strings. (128144043)

    TextKit

    New Features

    • iOS 26, tvOS 26, visionOS 26, watchOS 26, and macOS Tahoe 26 have two methods for resolving the natural alignment NSTextAlignment.natural and the last line of NSTextAlignment.justified into concrete alignments, left, and right. The first approach utilizes the UI language, which is determined by passing nil-language to NSParagraphStyle.defaultWritingDirection(forLanguage:). This behavior was employed prior to this release. The second method is new and dynamically utilizes the base writing direction for the paragraph. When the base writing direction is set to NSWritingDirection.rightToLeft, the text is aligned to right, and vice versa. The behavior is selected by API introduced in this major release: NSTextLayoutManager.resolvesNaturalAlignmentWithBaseWritingDirection, NSStringDrawingOptions.ResolvesNaturalAlignmentWithBaseWritingDirection, UITraitCollection.resolvesNaturalAlignmentWithBaseWritingDirection, and NSTextField.resolvesNaturalAlignmentWithBaseWritingDirection. (152045248)

    Resolved Issues

    • Fixed: The directionality of NSParagraphStyle indentation properties (firstLineHeadIndent, headIndent, and tailIndent) is determined by inconsistent hidden rules implemented by the TextKit typesetting engine.
      With iOS 26, macOS 26, tvOS 26, watchOS 26, and visionOS 26, the TextKit 2 typesetting engine has been standardized to utilize the resolved writing direction for the paragraph when linked with the OS 26 versions of the corresponding SDKs. For binary compatibility, applications developed with prior SDK versions will use the UI language in a subset of API interfaces. Specifically, for UILabel, NSTextField, SwiftUI.Text, and NSStringDrawing, the indentation directionality is determined by the UI language queried by passing nil to NSParagraphStyle.defaultWritingDirection() in applications built with prior SDK versions. (155893102)

    TextKit 2

    New Features

    • A new property, includesTextListMarkers, is introduced to NSTextList, NSTextContentStorage, and NSWritingToolsCoordinator. This property controls whether to include the text list marker string in the contents of NSAttributedString for paragraphs associated with NSTextList. TextKit 1 expects the marker string, while TextKit 2 does not. The TextKit 2 behavior was adopted by UIKit starting with iOS 18 (includesTextListMarkers=NO). AppKit is also adopting the TextKit 2 text list behavior starting with macOS 26. (128479184)

    Translation

    Known Issues

    • For Catalyst apps using .translationTask(), buttons in the download approval UI might not work. (151313115)
      Workaround: Either manually download the languages you need beforehand from System Settings, or build your Catalyst app with the “Optimize for Mac” setting.

    UIKit

    New Features

    • In TextKit 2, the includesTextListMarkers property has been introduced to NSTextList, NSTextContentStorage, and NSWritingToolsCoordinator. For paragraphs associated with NSTextList, the property controls whether to include the text list marker string in the NSAttributedString contents. The classes within TextKit 1 expect the marker string, while the classes within TextKit 2 do not. (144903293)

    VideoToolbox

    Resolved Issues

    • Fixed: You might experience decoding performance issues for high-bitrate HEVC, resulting in stuttering and lag. (153243806)

    Virtual Machines

    Resolved Issues

    • Fixed: Virtual machine networking fails if you start a bridge mode VM while a shared or host mode VM is running, and vice versa. The networking of the existing VM is not affected. (151477625)

    Weather

    Resolved Issues

    • Fixed: Users might see a blank white button on some tips for Weather features. The button will be operable. (152088799)

    WebKit API

    New Features

    • The load APIs on WebPage now return an AsyncSequence directly that can be used to track relevant navigation events. The currentNavigationEvent property has been removed in favor of the navigations property, which produces an indefinite sequence directly. (152414525)
    • The WebPage API now supports directly loading URLs. Additionally, when loading an HTML string, there is now a default value for the baseURL parameter. (152904248) (FB17850359)

    Resolved Issues

    • Fixed: webViewOnScrollGeometryChange might report an incorrect content size. (146576790)

    Known Issues

    • WKPreferences.isLookToScrollEnabled is not available on non-visionOS platforms. (152106377)

    Xcode

    Resolved Issues

    • Fixed: Xcode Previews usage frequently panics on macOS 26.0 Tahoe beta 4. (141641869)
    Original source Report a problem

Related vendors