macOS Sequoia 15.4 Beta Release Notes
Overview
The macOS 15.4 SDK provides support to develop apps for Mac computers running Sequoia 15.4 beta. The SDK comes bundled with Xcode 16.3, available from the Mac App Store. For information on the compatibility requirements for Xcode 16.3, see Xcode 16.3 Release Notes.
Apple Intelligence
Known Issues
After restoring macOS 15.4, some Apple Intelligence features might not be available or you might see “Downloading support…”. (145297891)
Workaround: Restarting your device might resolve the issue.
FSKit
New Features
FSKit is now available, enabling delivery of user space file systems as Application Extensions. These file systems support integration with DiskArbitration. (44900760)
Game Controller
Resolved Issues
Fixed: Game controllers might stop responding when accessibility features, such as Voice Over, are enabled. (141497799)
libxml2
Deprecations
The custom allocation API for libxml2 is deprecated starting in macOS Sequoia 15.4, iOS 18.4, tvOS 18.4, visionOS 2.4, and tvOS 18.4. If this API is not used, no changes are required. If this API is currently used, make changes to call
malloc()
instead ofxml
orMalloc() xml
; callMalloc Atomic() realloc()
instead ofxml
; callRealloc() free()
instead ofxml
and callFree() strdup()
instead ofxml
. Stop callingMem Strdup() xml
,Mem Setup() xml
,Mem Get() xml
andGc Mem Setup() xml
to set custom allocation functions. Do not set global variablesGc Mem Get() xml
,Malloc xml
,Malloc Atomic xml
,Realloc xml
, andFree xml
. Internally, libxml2 and libxslt will now use the system allocator instead of this API, so do not rely on these libraries using the custom allocation API. (138404994)Mem Strdup
Podcasts
New Features
Podcasts Search provides suggestions as you type to help you find what you’re looking for. (144169175)
SCSIControllerDriverKit
New Features
Four new API’s have been introduced:
User
,Map Bundled Parallel Task Command And Response Buffers Bundled
,Parallel Task Completion User
andProcess Bundled Parallel Tasks User
.Complete Bundled Parallel Task These APIs introduce the concepts of bundled I/Os and shared memory, for parallel task command and response buffers.
The shared memory addresses the RPC copy overhead. Bundled I/O enables the exchange of multiple I/Os in a single API call (in both submission and completion path), instead of handing over one I/O at a time between DriverKit and DriverExtension. This helps mitigate the DriverKit latencies while interacting with DriverExtension.
The
IOUser
file explains the concepts of I/O bundling and shared memory for parallel task and response buffers.SCSIParallel Interface Controller .iig If DriverExtension has considerably lower I/O performance compared to the KernelExtension for workloads with high queue depths or very small I/O sizes (i.e. 4KB), try using these new APIs. (134516478)
StoreKit
New Features
New StoreKit APIs support Advanced Commerce API in-app purchases. (118528943)
By using the new purchase option API
introductory
, you can now set a preference for whether an introductory offer should be redeemed during a purchase. This API requires you to sign a payload on your server in order to either apply the offer (even if the customer is not eligible) or block it. (136152740)Offer Eligibility(compact JWS:) New properties
app
,Transaction ID original
, andPlatform period
are now available in AppTransaction, Transaction, Transaction.Offer, and Product.SubscriptionInfo.RenewalInfo. (136395697)
Deprecations
Transaction
is now deprecated. This API returns the latest transaction that entitles the user to a product, which may not include transactions originated for family shared subscriptions. Use the.current Entitlement(for:) Transaction
method to get all the transactions that entitle the user to a product. (138320205).current Entitlements(for:)
SwiftUI
Resolved Issues
Fixed: A color set by the
tint(_:)
modifier does not override the tint color of buttons in that view’s confirmation dialogs and alerts. (138774306)Fixed: For apps compiled against iOS 18.4 beta, applying
default
to customizable toolbar items does not hide the item by default on iOS. (139815290)Visibility(.hidden) Fixed: When NavigationStack or NavigationSplitView content updates, the environment is not invalidated unless properties in the environment have changed. (139855826)
Known Issues
On macOS,
.sheet
,.alert
and.confirmation
modals conditionally allow app termination (via the menu item, ⌘Q, Software Update, etc.) in some configurations. (141551605)Dialog Workaround: For macOS 15.4 beta, modals listed above will allow app quit while presented under specific conditions. If you strictly need to block app quit in macOS 15.4 beta, you can temporarily mark the dialog as critical with
dialog
, ensure the sheet toolbar has > 1 button (or no buttons withSeverity .confirmation
orAction cancellation
placements), or ensure the dialog has > 1 action button in it.Action
System Calls
New Features
fileport_makeport(2) and fileport_makefd(2) are now APIs with manual pages. (66571768) (FB8270900)
UIWritingToolsCoordinator
Known Issues
In macOS 15.4 beta, NSWritingToolsCoordinatorDelegate method
-writing
is marked as optional and will not be called. (142681236)Tools Coordinator: requests Range In Context With Identifier For Point: completion: Workaround: When building on macOS 15.4 beta and deploying to macOS 15.2, implement the deprecated NSWritingToolsCoordinatorDelegate method
-writing
. If you are not deploying earlier than macOS 15.4, do not implement this method.Tools Coordinator: requests Range In Context With Identifier For Point: completion:
URLSession
New Features
To enable the new HTTP loading mode, set
uses
to false on URLSessionConfiguration. The new loading mode will become the default in a future release. (89390075)Classic Loading Mode
Virtual Machines
Known Issues
Upon update to macOS 15.4 beta 1, M4 Macs will be unable to launch virtual machines and attempts will result in a system restart. (145309647) (FB16542958)
Workaround: Do not launch virtual machines. If virtual machine applications launch upon login, boot to Safe Mode and disable in system settings.
Writing Tools
Known Issues
After generating a list, key point, table, or summary in the pop-over, selecting “Replace” results in an error message. (145186545)
Workaround: The generated content can be copied and pasted. User can manually replace the selected text with the generated text.