visionOS 26.4 Release Notes
Update your apps to use new features, and test your apps against API changes.
Overview
The visionOS 26.4 SDK provides support for developing apps for Apple Vision Pro devices running visionOS 26.4. The SDK comes bundled with Xcode 26.4, available from the Mac App Store. For information on the compatibility requirements for Xcode 26.4, see Xcode 26.4 Release Notes.
Address Sanitizer
Known Issues
Address Sanitizer and Thread Sanitizer might hang on macOS 26.4, iOS 26.4, tvOS 26.4, watchOS 26.4, and visionOS 26.4 when building with Xcode 26.3 or older. (171762808)
Workaround: Use Xcode 26.4 when testing applications with Address Sanitizer or Thread Sanitizer.
Background Assets
New Features
You can now check the status of an asset pack while offline by calling
localStatus(ofAssetPackWithID:)orassetPackIsAvailableLocally(withID:)on the shared asset pack manager. The former method returns all available status information. The latter returns only a Boolean value but can be called synchronously. Not all status information is available offline. (164498466)You can make the latest version of an asset pack available locally by calling
ensureLocalAvailability(of:requireLatestVersion:)on the shared asset pack manager and passingtrueto theshouldUpdateparameter. (166237389)
Resolved Issues
Fixed: Apps might crash when downloading asset packs. (169648111)
Foveated Streaming
New Features
visionOS 26.4 supports NVIDIA CloudXR with foveated streaming, enabling apps to display high-resolution, low-latency immersive content on Apple Vision Pro. To implement this new feature, refer to the Apple Developer documentation for FoveatedStreaming. (170184382)
Resolved Issues
Fixed: The current remote streaming API
public static func remote (serverName: String)does not include the signaling headers which is used for Vision Pro connection with the server. The signaling headers can be used for authentication and for manipulating the remote scene. (170085006)
Known Issues
If the user takes off Apple Vision Pro while using the ‘FoveatedStreaming’ feature to stream CloudXR-enabled content, the steam will not pause as expected and the battery will drain. (171672303)
Workaround: Setup passcode in Vision Pro to avoid this issue
User input is unsupported for targets beyond 4 meters. (172134620)
Workaround: Ensure that your UI is within 4 meters from the streaming space origin. If you run into this issue and input stops working for the UI that was originally outside of the 4 meter distance, force quit the app to get it working again.
Managed App Distribution
Known Issues
ManagedAppViewmight render blank when multiple apps are displayed simultaneously in Managed App Distribution. (171016274)Workaround: Display a single
ManagedAppViewin Managed App Distribution.
Networking
Resolved Issues
Fixed: Multiple processes leak
CFRunLoopSourceobjects when Automatic proxy configuration (PAC) or Auto proxy discovery are configured.For clients of the
CFNetworkExecuteProxyAutoConfigurationURLandCFNetworkExecuteProxyAutoConfigurationScriptAPI, please check to make sure your process is not working around the leak by overreleasing theCFRunLoopSourceRefreturned by those functions or theCFArrayRefandCFErrorRefpassed to the completion. (166839810) (FB21376045)
StoreKit
New Features
New fields revocationType and revocationPercentage have been added to Transaction. (148858551)
Resolved Issues
Fixed: Purchase Intents might not be emitted from the intents sequence when the app is launched from the background. (168958783) (FB21767675)
SwiftUI
Resolved Issues
Fixed: SwiftUI does not surface the latest
.userActivityas the current user activity. (163136831)
Known Issues
Multiple implicit SwiftUI animations (triggered by
RealityViewContent.animateorEntity.animate) that modify a RealityKit component’s properties, are combined only when the implicit animations target the same set of component properties.For example, if you initiate an implicit animation on Transform.scale and then initiate an implicit animation on Transform.scale and Transform.translation then the animations affecting the scale property will be independent of each other, and will not combine. In this case, the most recently initiated animation will overwrite the scale property. (169723142)
Workaround: Ensure the same component properties are animated by subsequent implicit animations when possible.