macOS Sequoia 15.4 RC 2: What Developers Need to Know
Categories:
5 minute read
macOS Sequoia 15.4 RC 2: What Developers Need to Know
Apple has released macOS Sequoia 15.4 RC 2, bringing updates for developers to leverage new features and test their applications against the latest API changes. This release, bundled with Xcode 16.3 available on the Mac App Store, includes a variety of new features, resolved issues, and a few known issues to be aware of. Let’s dive into the key highlights for developers.
New Features and Enhancements
- FSKit: A significant addition is the availability of FSKit, which allows for the delivery of user space file systems as Application Extensions. These file systems now support integration with DiskArbitration. This opens up new possibilities for creating custom file system solutions on macOS.
- SCSIControllerDriverKit: Several new APIs have been introduced in SCSIControllerDriverKit:
UserMapBundledParallelTaskCommandAndResponseBuffers
,BundledParallelTaskCompletion
,UserProcessBundledParallelTasks
, andUserCompleteBundledParallelTask
. These APIs introduce the concept of bundled I/Os and shared memory for parallel task command and response buffers. This aims to reduce RPC copy overhead by utilizing shared memory and mitigate DriverKit latencies by enabling the exchange of multiple I/Os in a single API call. Developers experiencing lower I/O performance with DriverExtensions for workloads with high queue depths or small I/O sizes (like 4KB) should consider utilizing these new APIs. TheIOUserSCSIParallelInterfaceController.iig
file provides further explanation of these concepts. - Podcasts: The Podcasts app now features search suggestions as you type, making it easier for users to find the content they are looking for.
- SD Card Reader: For Apple silicon Macs equipped with an internal SD card reader, there is now support for SDUC cards larger than 2TB.
- StoreKit: Several updates and additions have been made to StoreKit:
- New APIs now support Advanced Commerce API in-app purchases.
- The new purchase option API
introductoryOfferEligibility(compactJWS:)
allows developers to set a preference for whether an introductory offer should be redeemed during a purchase. This requires server-side signing of a payload to either apply or block the offer. - New properties
appTransactionID
,originalPlatform
, andperiod
are available inAppTransaction
,Transaction
,Transaction.Offer
, andProduct.SubscriptionInfo.RenewalInfo
. ThePlatform
symbol used byoriginalPlatform
has been moved toAppStore.Platform
. TheintroductoryOfferEligibility(compactJWS:)
API inPurchaseOption
was previously namedintroductoryOfferEligibility(compactJWS:)
.watchOS
has been removed as a separate option in theAppStore.Platform
API and is now combined withiOS
.
- SwiftUI:
- On macOS,
.sheet
,.alert
, and.confirmationDialog
modal presentations now conditionally allow app termination automatically (via menu item, ⌘Q, Software Update, etc.). This behavior can be configured using the new modifierspresentationPreventsAppTermination(_:)
anddialogPreventsAppTermination(_:)
.
- On macOS,
- System Calls: The
fileport_makeport(2)
andfileport_makefd(2)
are now documented APIs with manual pages. - URLSession: A new HTTP loading mode can be enabled by setting
usesClassicLoadingMode
tofalse
onURLSessionConfiguration
. This new mode is slated to become the default in a future release.
Resolved Issues
This release also addresses several issues across different areas:
- Apple Intelligence: An issue where some Apple Intelligence features might be unavailable or show “Downloading support…” after restoring macOS 15.4 has been fixed.
- Automatic Assessment Configuration: A fix addresses a potential interruption of assessment sessions under high-memory use conditions.
- Game Controller: Game controllers should no longer stop responding when accessibility features like Voice Over are enabled.
- Networking: A functionality issue on CI build machines caused by 169.254.169.254 on Ethernet due to Local Network Privacy restrictions has been resolved.
- StoreKit:
- A fix addresses an issue where the StoreKit helper application could quit with an
NSCocoaErrorDomain
error 4097 during a purchase. - Errors from the StoreKit 2 domain during a purchase should no longer occur with the StoreKit APIs.
- A fix addresses an issue where the StoreKit helper application could quit with an
- SwiftUI:
- The
tint(_:)
modifier now correctly overrides the tint color of buttons in confirmation dialogs and alerts. - An issue where applying
defaultVisibility(.hidden)
to customizable toolbar items did not hide the item by default on iOS for apps compiled against iOS 18.4 beta has been fixed. - Environment invalidation during
NavigationStack
orNavigationSplitView
content updates has been corrected. - The
@Sendable
requirement for the.onPreferenceChange
modifier’s closure argument has been addressed to prevent unnecessary concurrency diagnostics.
- The
- UIWritingToolsCoordinator: The
-writingToolsCoordinator:requestsRangeInContextWithIdentifierForPoint:completion:
method inNSWritingToolsCoordinatorDelegate
is no longer incorrectly marked as optional and will be called as expected. - Virtual Machines: An issue preventing M4 Macs from launching virtual machines, resulting in a system restart, has been resolved.
- Writing Tools: Selecting “Replace” after generating a list, key point, table, or summary in the pop-over should no longer result in an error message.
Known Issues and Workarounds
Developers should also be aware of the following known issues:
- Apple Intelligence: After restoring macOS 15.4, some Apple Intelligence features might not be available, or a “Downloading support…” message might appear. Workaround: Restarting the device might resolve this issue.
- Driver Extensions: After updating to macOS 15.4 beta, issues with loading installed drivers might occur. Workaround: Navigate to
System Settings > General > Login Items & Extensions
, disable the affected driver extensions, restart the Mac, and then re-enable them after restarting. - StoreKit: Calling
isEligibleForIntroOffer(for:)
will returnfalse
if no user account is signed in. Workaround: The user should sign in with their App Store account to request introductory offer eligibility.
Deprecations
- libxml2: The custom allocation API for libxml2 is now deprecated. Developers using
xmlMalloc()
,xmlMallocAtomic()
,xmlRealloc()
,xmlFree()
,xmlMemStrdup()
,xmlMemSetup()
,xmlMemGet()
,xmlGcMemSetup()
, orxmlGcMemGet()
should switch to using the system allocator functions likemalloc()
,realloc()
,free()
, andstrdup()
instead. Setting the global variablesxmlMalloc
,xmlMallocAtomic
,xmlRealloc
,xmlFree
, andxmlMemStrdup
is also deprecated. - StoreKit:
Transaction.currentEntitlement(for:)
is deprecated. Developers should now useTransaction.currentEntitlements(for:)
to get all transactions entitling a user to a product, as the deprecated API might not include transactions from family shared subscriptions.
This macOS Sequoia 15.4 RC 2 release offers a range of updates and improvements for developers. Be sure to test your applications thoroughly and leverage the new features to create even better experiences for your users. Keep the known issues and deprecations in mind as you continue your development work.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.