macOS Ventura 13 Release Notes
Update your apps to use new features, and test your apps against API changes.
Overview
The macOS 13 SDK provides support to develop apps for Mac computers running macOS Ventura 13. The SDK comes bundled with Xcode 14.1 RC, available from Beta Software Downloads. For information on the compatibility requirements for Xcode 14.1, see Xcode 14.1 Release Notes.
General
Known Issues
AppKit
Accessory Security
New Features
On portable Mac computers with Apple silicon, new USB and Thunderbolt accessories require user approval before the accessory can communicate with macOS for connections wired directly to the USB-C port. This doesn’t apply to power adapters, standalone displays, or connections to an approved hub. Devices can still charge if you choose Don’t Allow.
You can change the security configuration in System Settings > Security and Privacy > Security. The initial configuration is Ask for new accessories. Configuring an accessibility Switch Control sets the policy to always allow accessory use. Approved devices can connect to a locked Mac for up to three days.
Accessories attached during software update from prior versions of macOS are allowed automatically. New accessories attached prior to rebooting the Mac might enumerate and function, but won’t be remembered until connected to an unlocked Mac and explicitly approved. (43338666)
Endpoint Security
Known Issues
Third-party security products using the Endpoint Security API might lose Full Disk Access authorization and stop functioning, even though the product remains visible in System Settings. This issue doesn’t affect authorization granted via MDM. (100857507)
Workaround: Go to System Settings > Privacy & Security > Full Disk Access, select the security product, use the minus (-) button to remove, and then use the plus (+) button to re-add the affected security product. A system restart might be required to restore expected functionality.
File System
New Features
There’s a change to the implementation of the
msdosandexfatfile systems. Apps that check for those specific file system formats might not detect them. Please file feedback if this impacts your app. (90768681)The
asrutility won’t perform a volume replication of the booted macOS volume group without having the invoking app augmented with Full Disk Access privileges (or if SIP is disabled). The new requirement is to turn on Full Disk Access for the app in System Settings > Privacy & Security. (91764517)
CoreGraphics
Deprecations
To improve security,
CGImageCreateenforces parameter correctness on macOS Ventura 13, iOS 16, iPadOS 16, watchOS 9, and tvOS 16. Passing an incorrectCGImageByteOrderInfois no longer supported, and will result in images failing to load. (94855401)
DeviceDiscoveryUI
Known Issues
Devices running beta 4 or later aren’t backwards compatible with devices running earlier beta versions. (95233878)
Game Controller
New Features
Many additional Bluetooth and USB game controllers are supported by the Game Controller framework on macOS 13, iOS 16, and tvOS 16 and later. (82409809)
Known Issues
Moving a Remind Me message to another mailbox doesn’t remove the Remind Me banner. (93685824)
Memory Allocation
Known Issues
In apps built with the macOS 13 SDK or later, the system memory allocator
freeoperation zeroes out most deallocated blocks in macOS 13 beta or later. Invalid accesses to free memory might result in new crashes or corruption, including:Read-after-free bugs that previously observed the old contents of a block may now observe zeroes instead
Write-after-free bugs may now cause subsequent calls to
callocto return non-zero memory
To debug these issues, use Address Sanitizer and Guard Malloc (see
libgmalloc(3)). (97449075)
Metal
Known Issues
The
MTLResource.gpuHandleis deprecated. (92862429)Workaround: Use gpuResourceID instead, which functions as a replacement.
Metal Offline Compiler
Known Issues
MetalFXeffect outputs aren’t designed to be consumed by the CPU. Outputting to a texture that is read only by the CPU might result in synchronization issues. (91515075)Workaround: If a CPU reading of the
MetalFXoutput is desired, instead of encoding theMetalFXeffect as the last item in a command buffer, encode a dummy blit that consumes theMetalFXoutput texture (a 1-pixel region blit is fine) in the command buffer. After the command buffer with the dummy blit is finished, reading of theMetalFXeffect output texture with CPU synchronizes correctly.
Networking
New Features
Added
NSURLSessionsupport for client-certificate based authentication. (24523955)
Added
URLSessionsupport for Private Access Tokens. (82937526)
Deprecations
FTP is deprecated for
URLSessionand related APIs. Please adopt modern secure networking protocols such as HTTPS. (92623659)
StoreKit
New Features
All StoreKit APIs are now annotated for sendability and main actor isolation. (84157048)
Producthas new properties for localizing prices and subscription periods. For iOS 15, iPadOS 15, macOS 12, tvOS 15, and watchOS 8 or later usepriceFormatStyleto format numbers derived fromprice. UsesubscriptionPeriodFormatStyleto format durations of time relating to a subscription period. On iOS 16, iPadOS 16, macOS 13, tvOS 16, and watchOS 9 or later usesubscriptionPeriodUnitFormatStyleto format single units of a subscription period. (93780442)
A property environment is included in Product.SubscriptionInfo.RenewalInfo and Transaction. It represents the server environment in which the
RenewalInfoandTransactionoccurred, respectively. (85988753)
AppTransaction allows developers to cryptographically verify that the app was purchased on the App Store. (86739279)
The
recentSubscriptionStartDateproperty is included in Product.SubscriptionInfo.RenewalInfo. It represents the date that marks the start of the most recent period of continuous subscription. A period is considered a continuous subscription if there’s no more than a 60-day gap between any two subscribed periods. (86599570)
Present the offer code redemption sheet with the offerCodeRedemption(isPresented:onCompletion:) view modifier in your SwiftUI apps. (85321941)
The StoreKit Messages API allows you to control when App Store messages are displayed in your app. (85321880)
Read the requestReview environment value to get an instance of a RequestReviewAction. Then, call this instance to request to display a review prompt from your SwiftUI apps. (86739003)
Deprecations
Deprecated the SKDownload API and removed the option to upload nonconsumable in-app purchase assets for Apple to host. In addition, support for managing these assets in App Store Connect is no longer available as of April 2022. (89764253)
Swift
Known Issues
Network.frameworkresolved an issue that could causeNWBrowser,NWConnection,NWConnectionGroup,NWEthernetChannel,NWListener, andNWPathMonitorto trigger a retain cycle when various Handler blocks are set. Starting with macOS 13, iOS 16, watchOS 9, and tvOS 16, if software usingNetwork.frameworktargets these releases as the minimum OS, the object releases any blocks they captured once cancelled, breaking the retain cycle. (89677097)Workaround: For software targeting older versions, the retain cycle can be broken by setting the handler blocks to
nilafter canceling the object.
SwiftUI
New Features
Custom types conforming to
ToolbarContentnow support dynamic properties like@Environment. (94117842)
You can now place a TextField in an Alert by using
alertmodifiers that accept a ViewBuilder. (64819930)
For
control, Section, or other views that have a Label, the ViewBuilder content now automatically arranges and styles multiple views as hierarchical elements, such astitleandsubtitle. If thelabelviews are intended to be arranged horizontally rather than hierarchically, wrap the views within an HStack. (85184563)
A
TextFieldsupports multiline text. Use a Axis.vertical axis on a text field to allow rendering of multiple lines in contexts like forms, where text is expected to be short to medium length. For long-form text editing, continue to use a TextEditor. (51463718)
A
listsupports Section footers. (78462739)When presenting a
sheetorwindow, SwiftUI now uses focus state bindings to determine where focus should be placed by default. Clients can specify a custom binding assignment using the newView.defaultFocus(_:_:)modifier. (81837128)Applying
View.focusable(false)to a container now also disables focus for the container’s contents. (89362190)An alert presented using an
Errordisplays as a critical alert, which shows a caution symbol with the app icon overlaid. (82014147)Lists and tables automatically support type-to-select, using the first
Textcontent in each cell. (85956291)Windows created using SwiftUI no longer have a maximum size by default. The user can resize them to fill the screen. To enforce a maximum size, use the
.windowResizability(.contentSize)modifier. (92634133)
Known Issues
Providing actions to a
navigationTitlemodifier has been deprecated. Use thetoolbarTitleActions()modifier orToolbarTitleActionstype in a toolbar modifier instead. (93658035)
Texts and Fonts
Deprecations
ATS and ATSUI APIs are fully deprecated. Code using these APIs will fail to compile and link when the deployment target is set to 13. Code targeting earlier versions of macOS will continue to compile, link, and run. macOS 13 is the last release where code depending on ATS or ATSUI will run. All runtime functionality will be removed in next major release of macOS. (83581159)
Wallet
Known Issues
American Express cards might need to be removed and re-added to Wallet after updating to macOS 13 beta 6 or later. (97990752)