Last active
March 28, 2025 08:06
-
-
Save applch/239c02a9ac619d31277e5b9025ffed0f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
macOS Sequoia 15.4 RC 2 Release Notes | |
Update your apps to use new features, and test your apps against API changes. | |
Overview | |
The macOS 15.4 SDK provides support to develop apps for Mac computers running Sequoia 15.4 RC 2. 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. | |
Resolved Issues | |
Fixed: (145318999) | |
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. | |
Automatic Assessment Configuration | |
Resolved Issues | |
Fixed: Assessment session might be interrupted in high-memory use conditions. (144416806) | |
Driver Extensions | |
Known Issues | |
After updating to macOS 15.4 beta, you might experience issues with loading installed drivers. (145330084) (FB16547388) | |
Workaround: Go to System Settings > General > Login Items & Extensions and disable your affected driver extensions. Restart your Mac. After restarting, go back to System Settings > General > Login Items & Extensions and re-enable the affected driver extensions. | |
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 of xmlMalloc() or xmlMallocAtomic(); call realloc() instead of xmlRealloc(); call free() instead of xmlFree() and call strdup() instead of xmlMemStrdup(). Stop calling xmlMemSetup(), xmlMemGet(), xmlGcMemSetup() and xmlGcMemGet() to set custom allocation functions. Do not set global variables xmlMalloc, xmlMallocAtomic, xmlRealloc, xmlFree, and xmlMemStrdup. 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) | |
Networking | |
Resolved Issues | |
Fixed: On Ethernet, 169.254.169.254 causes functionality issues on CI build machines due to Local Network Privacy restrictions. (145297894) (FB16541221) | |
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: UserMapBundledParallelTaskCommandAndResponseBuffers, BundledParallelTaskCompletion, UserProcessBundledParallelTasks and UserCompleteBundledParallelTask. | |
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 IOUserSCSIParallelInterfaceController.iig file explains the concepts of I/O bundling and shared memory for parallel task and response buffers. | |
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) | |
SD Card Reader | |
New Features | |
Apple silicon Macs with an internal SD card reader now support SDUC cards larger than 2TB. (122898691) | |
StoreKit | |
New Features | |
New StoreKit APIs support Advanced Commerce API in-app purchases. (118528943) | |
By using the new purchase option API introductoryOfferEligibility(compactJWS:), 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) | |
New properties appTransactionID, originalPlatform, and period are now available in AppTransaction, Transaction, Transaction.Offer, and Product.SubscriptionInfo.RenewalInfo. (136395697) | |
The Platform symbol used by originalPlatform in AppTransaction has been moved to AppStore.Platform. (143632084) | |
The introductory offer eligibility preference API in PurchaseOption has been renamed to introductoryOfferEligibility(compactJWS:). (143905053) | |
watchOS is removed as an option in the AppStore.Platform API. watchOS is now combined with iOS. (145578780) | |
Resolved Issues | |
Fixed: StoreKit helper application quits with NSCocoaErrorDomain error 4097 during a purchase. (140317005) (FB15907723) | |
Fixed: StoreKit APIs might return errors from the StoreKit 2 domain during a purchase. (144191684) | |
Known Issues | |
Calling isEligibleForIntroOffer(for:) will return false if there is no user account signed in. (146119524) | |
Workaround: The user should sign in with their App Store account to request introductory offer eligibility. | |
Deprecations | |
Transaction.currentEntitlement(for:) 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 Transaction.currentEntitlements(for:) method to get all the transactions that entitle the user to a product. (138320205) | |
SwiftUI | |
New Features | |
On macOS .sheet, .alert and .confirmationDialog modal presentations conditionally allow app termination (via the menu item, ⌘Q, Software Update, etc.) automatically. This is now configurable with two new modifiers, presentationPreventsAppTermination(_:) and dialogPreventsAppTermination(_:). (141551605) | |
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 defaultVisibility(.hidden) to customizable toolbar items does not hide the item by default on iOS. (139815290) | |
Fixed: When NavigationStack or NavigationSplitView content updates, the environment is not invalidated unless properties in the environment have changed. (139855826) | |
Fixed: .onPreferenceChange modifier’s closure argument is required to be @Sendable. This might cause concurrency diagnostics that’s unnecessary if the closure needs to access main actor-isolated values. This particular closure shouldn’t have to be this restrictive. (145238570) | |
System Calls | |
New Features | |
fileport_makeport(2) and fileport_makefd(2) are now APIs with manual pages. (66571768) (FB8270900) | |
UIWritingToolsCoordinator | |
Resolved Issues | |
Fixed: In macOS 15.4 beta, NSWritingToolsCoordinatorDelegate method -writingToolsCoordinator:requestsRangeInContextWithIdentifierForPoint:completion: is marked as optional and will not be called. (142681236) | |
URLSession | |
New Features | |
To enable the new HTTP loading mode, set usesClassicLoadingMode to false on URLSessionConfiguration. The new loading mode will become the default in a future release. (89390075) | |
Virtual Machines | |
Resolved Issues | |
Fixed: M4 Macs are unable to launch virtual machine, and attempts result in a system restart. (145309647) (FB16542958) | |
Writing Tools | |
Resolved Issues | |
Fixed: After generating a list, key point, table, or summary in the pop-over, selecting “Replace” results in an error message. (145186545) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment