Skip to content

AudioToolbox tvOS xcode27.0 b1

Alex Soto edited this page Jun 9, 2026 · 1 revision

#AudioToolbox.framework

diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h	2026-04-18 21:23:57
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h	2026-05-23 15:53:28
@@ -188,6 +188,28 @@
 
 	@constant       kAudioUnitType_SpeechSynthesizer
 		An offline audio unit that produces synthesized speech audio output.
+ 
+	@constant       kAudioUnitType_HeadTrackingBinauralRenderer
+		 An Audio Unit that enables third-party developers to provide custom spatial audio rendering
+		 for their compatible Bluetooth headphones.
+		 
+		 This Audio Unit type is only used by a 3rd Party Spatial Audio Extension to receive head
+		 tracking data and perform binaural rendering.
+		 
+		 Headphone manufacturers must publish head tracking spatial audio capabilities for matching
+		 headphones via Audio Accessory Framework. This enables the manufacturer-provided Audio
+		 Accessory Extension to take the head tracking data retrieved from the headphones using
+		 Core Bluetooth APIs and transmit it to the Audio Accessory Daemon. The Audio Unit then
+		 retrieves the head tracking data exposed through the daemon using API vended for this
+		 purpose. See the 3rd Party Spatial Audio Extension programming guide for more information.
+		  
+		 The system automatically loads matching Head Tracking Binaural Renderer Audio Units into
+		 the audio signal chain when spatialization is enabled and audio is routed to the Bluetooth
+		 headphones. When spatialization is disabled, the system removes the Audio Unit from the
+		 signal chain.
+		 
+		 When loaded, the system bypasses Audio Units of this type if power limits are exceeded or
+		 if the system detects audio dropouts.
 */
 CF_ENUM(UInt32) {
 	kAudioUnitType_Output					= 'auou',
@@ -200,7 +222,8 @@
 	kAudioUnitType_Generator				= 'augn',
 	kAudioUnitType_OfflineEffect			= 'auol',
 	kAudioUnitType_MIDIProcessor			= 'aumi',
-	kAudioUnitType_SpeechSynthesizer API_AVAILABLE(ios(16.0), macos(13.0), watchos(9.0), tvos(16.0))  = 'ausp'
+	kAudioUnitType_SpeechSynthesizer API_AVAILABLE(ios(16.0), macos(13.0), watchos(9.0), tvos(16.0))  = 'ausp',
+	kAudioUnitType_HeadTrackingBinauralRenderer API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), watchos(27.0), visionos(27.0)) = 'auht'
 };
 
 #if AU_SUPPORT_INTERAPP_AUDIO
@@ -1600,6 +1623,17 @@
 					
 					The call should only clear memory, it should NOT allocate or free memory 
 					resources (this is done in the Initialize calls).
+	
+					It is the AudioUnit host's responsibility to synchronize calls to AudioUnitReset()
+					against calls to AudioUnitRender() so that they are not being called concurrently.
+					Generally, this should not be accomplished by calling AudioUnitReset() from a realtime
+					thread, since the clearing of large internal buffers can be sufficiently slow as to
+					trigger an overload.
+
+                    Note: Some Audio Unit implementations do internally synchronize Reset against Render,
+                    because they must synchronize with external event sources (beyond the host).
+					The Apple base implementation, AUBase, provides an optional mutex for this purpose,
+					though most AudioUnits don't need to use it.
 	
 	@param			inUnit
 					the audio unit
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUHeadTrackingBinauralRenderer.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUHeadTrackingBinauralRenderer.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUHeadTrackingBinauralRenderer.h	1969-12-31 19:00:00
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUHeadTrackingBinauralRenderer.h	2026-05-23 02:47:49
@@ -0,0 +1,73 @@
+#if (defined(__USE_PUBLIC_HEADERS__) && __USE_PUBLIC_HEADERS__) || (defined(USE_AUDIOTOOLBOX_PUBLIC_HEADERS) && USE_AUDIOTOOLBOX_PUBLIC_HEADERS) || !__has_include(<AudioToolboxCore/AUHeadTrackingBinauralRenderer.h>)
+#ifndef AudioToolbox_AUHeadTrackingBinauralRenderer_h
+#define AudioToolbox_AUHeadTrackingBinauralRenderer_h
+#if __OBJC2__
+
+#import <Foundation/Foundation.h>
+#import <AudioToolbox/AUAudioUnit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// A subclass of AUAudioUnit specifically for 3rd party spatial Audio Units.
+///
+/// This class adds spatial-audio-specific head tracking properties beyond the standard
+/// AUAudioUnit interface.
+///
+/// When the user selects matching Bluetooth headphones for the current audio route and
+/// the system has a 3rd Party Spatial Audio Extension installed that supports them, the
+/// system automatically loads this AUAudioUnit subclass into the audio signal chain while
+/// head tracking remains active on the host device.
+///
+/// Only the audio mix engine may use AUHeadTrackingBinauralRenderer Audio Units to
+/// provide on demand Bluetooth head tracking support. See the 3rd Party Spatial Audio
+/// Extension programming guide for more information.
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macos, macCatalyst, tvos, watchos, visionos)
+@interface AUHeadTrackingBinauralRenderer : AUAudioUnit
+
+/// Indicates whether the host currently has enabled head tracking for this spatial Audio Unit.
+///
+/// The host sets this property when the user enables or disables head tracking.
+/// When YES, the spatial Audio Unit should use head tracking data to adjust
+/// spatialization. When NO, the host has disabled head tracking.
+///
+/// The Audio Unit should monitor this property to detect changes in head tracking state.
+///
+/// This property supports Key-Value Observing (KVO).
+@property (nonatomic, readonly, getter=isHeadTracking) BOOL headTracking;
+
+/// Indicates whether the host is bypassing the renderer due to poor performance.
+///
+/// The host may set this property when the Audio Unit exhibits problematic behavior
+/// such as excessive CPU usage that impacts real-time performance or non-compliance with
+/// API requirements.
+///
+/// When YES, the host bypasses the spatial Audio Unit in the audio signal chain and the
+/// Audio Unit does not render audio. When NO, the Audio Unit receives input and must
+/// render audio when it is matched a Bluetooth headphone device.
+///
+/// The Audio Unit should monitor this property to detect when the host disables the Audio Unit.
+///
+/// This property supports Key-Value Observing (KVO).
+@property (nonatomic, readonly, getter=isDisabled) BOOL disabled;
+
+/// The Unique Identifier (UID) of the Bluetooth headphone device providing IMU sensor data for head tracking.
+///
+/// The UID identifies which Bluetooth headphone device corresponds to this instance of the
+/// Audio Unit. The host sets this property when it matches a device with this instance of
+/// the Audio Unit.
+///
+/// The Audio Unit should monitor this property to detect when the host matches the Audio Unit with
+/// Bluetooth headphones.
+///
+/// This property supports Key-Value Observing (KVO).
+@property (nonatomic, readonly, nullable) NSString* deviceUID;
+
+@end
+
+NS_ASSUME_NONNULL_END
+
+#endif // __OBJC2__
+#endif // AudioToolbox_AUHeadTrackingBinauralRenderer_h
+#else
+#include <AudioToolboxCore/AUHeadTrackingBinauralRenderer.h>
+#endif
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioCodec.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioCodec.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioCodec.h	2026-04-18 22:23:14
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioCodec.h	2026-05-23 03:56:37
@@ -1008,7 +1008,7 @@
 AudioCodecGetPropertyInfo(	AudioCodec				inCodec,
 							AudioCodecPropertyID	inPropertyID,
 							UInt32* __nullable		outSize,
-							Boolean* __nullable		outWritable)		API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0));
+							Boolean* __nullable		outWritable)		API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0)) ;
 
 
 /*!
@@ -1033,7 +1033,7 @@
 AudioCodecGetProperty(	AudioCodec				inCodec,
 						AudioCodecPropertyID	inPropertyID,
 						UInt32*					ioPropertyDataSize,
-						void*					outPropertyData)		API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0));
+						void*					outPropertyData)		API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0)) ;
 
 
 /*!
@@ -1056,7 +1056,7 @@
 AudioCodecSetProperty(	AudioCodec				inCodec,
 						AudioCodecPropertyID	inPropertyID,
 						UInt32					inPropertyDataSize,
-						const void*				inPropertyData)			API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0));
+						const void*				inPropertyData)			API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0)) ;
 
 
 //=============================================================================
@@ -1091,7 +1091,7 @@
 						const AudioStreamBasicDescription* __nullable	inOutputFormat,
 						const void*	__nullable							inMagicCookie,
 						UInt32											inMagicCookieByteSize)
-																		API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0));
+																		API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0)) ;
 
 
 /*!
@@ -1107,7 +1107,7 @@
 	@result			The OSStatus value
 */
 extern OSStatus
-AudioCodecUninitialize(AudioCodec inCodec)								API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0));
+AudioCodecUninitialize(AudioCodec inCodec)								API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0)) ;
 
 
 /*!
@@ -1144,7 +1144,7 @@
 							UInt32*											ioInputDataByteSize,
 							UInt32*											ioNumberPackets,
 							const AudioStreamPacketDescription*	__nullable	inPacketDescription)
-																		API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0));
+																		API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0)) ;
 
 
 /*!
@@ -1183,7 +1183,7 @@
 								UInt32*										ioNumberPackets,
 								AudioStreamPacketDescription* __nullable	outPacketDescription,
 								UInt32*										outStatus)
-																		API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0));
+																		API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0)) ;
 
 extern OSStatus
 AudioCodecAppendInputBufferList(	AudioCodec							inCodec,
@@ -1191,7 +1191,7 @@
 									UInt32*								ioNumberPackets,
 									const AudioStreamPacketDescription*	__nullable	inPacketDescription,
 									UInt32*								outBytesConsumed)
-																		API_AVAILABLE(macos(10.7), ios(4.0), watchos(2.0), tvos(9.0));
+																		API_AVAILABLE(macos(10.7), ios(4.0), watchos(2.0), tvos(9.0)) ;
 
 extern OSStatus
 AudioCodecProduceOutputBufferList(	AudioCodec									inCodec,
@@ -1199,7 +1199,7 @@
 									UInt32*										ioNumberPackets,
 									AudioStreamPacketDescription* __nullable	outPacketDescription,
 									UInt32*										outStatus)
-																		API_AVAILABLE(macos(10.7), ios(4.0), watchos(2.0), tvos(9.0));
+																		API_AVAILABLE(macos(10.7), ios(4.0), watchos(2.0), tvos(9.0)) ;
 
 /*!
 	@function		AudioCodecReset
@@ -1213,7 +1213,7 @@
 	@result			the OSStatus value
 */
 extern OSStatus
-AudioCodecReset(AudioCodec inCodec)										API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0));
+AudioCodecReset(AudioCodec inCodec)										API_AVAILABLE(macos(10.2), ios(2.0), watchos(2.0), tvos(9.0)) ;
 
 //=====================================================================================================================
 typedef OSStatus
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioToolbox.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioToolbox.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioToolbox.h	2026-04-18 19:44:49
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioToolbox.h	2026-05-23 15:53:28
@@ -19,6 +19,7 @@
 #include <AudioToolbox/AUAudioUnitImplementation.h>
 #include <AudioToolbox/AUComponent.h>
 #include <AudioToolbox/AUGraph.h>
+#include <AudioToolbox/AUHeadTrackingBinauralRenderer.h>
 #include <AudioToolbox/AUParameters.h>
 #include <AudioToolbox/AudioComponent.h>
 #include <AudioToolbox/AudioConverter.h>
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h	2026-04-18 19:44:49
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h	2026-05-23 15:53:28
@@ -3075,6 +3075,7 @@
 	@enum	Reverb Room Types
 	@discussion Used to specify room type (as identified by a factory preset number) on Apple audio 
 				units that use internal reverb.
+    @note   kReverbRoomType_OutdoorGeneral is available with specific AudioUnits and AudioEngines only. Refer to corresponding AudioUnit/AudioEngines documentations to verify the support criteria.
 */
 typedef CF_ENUM(UInt32, AUReverbRoomType) {
 	kReverbRoomType_SmallRoom		= 0,
@@ -3089,7 +3090,8 @@
 	kReverbRoomType_LargeRoom2		= 9,
 	kReverbRoomType_MediumHall2		= 10,
 	kReverbRoomType_MediumHall3		= 11,
-	kReverbRoomType_LargeHall2		= 12	
+	kReverbRoomType_LargeHall2		= 12,
+    kReverbRoomType_OutdoorGeneral API_AVAILABLE(macos(27.0), ios(27.0), tvos(27.0), visionos(27.0)) API_UNAVAILABLE(watchos) = 24
 };
 
 /*!
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/CASpatialAudioExperience.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/CASpatialAudioExperience.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/CASpatialAudioExperience.h	2026-04-18 20:57:28
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/CASpatialAudioExperience.h	2026-05-23 02:02:07
@@ -22,7 +22,7 @@
 /// Configure the distribution of audio channels in 3D space.
 ///
 /// The Objective-C version of the ``SpatialAudioExperiences.SoundStageSize`` Swift type.
-API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios, watchos, tvos, macos)
+API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios) API_UNAVAILABLE(watchos, tvos, macos)
 typedef NS_ENUM(NSInteger, CASoundStageSize) {
     
     /// A system-defined sound stage size.
@@ -45,7 +45,7 @@
 ///
 /// The Objective-C version of the ``SpatialAudioExperiences.AnchoringStrategy`` Swift type.
 NS_REFINED_FOR_SWIFT
-API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios, watchos, tvos, macos)
+API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios) API_UNAVAILABLE(watchos, tvos, macos)
 @interface CAAnchoringStrategy : NSObject <NSSecureCoding, NSCopying>
 
 - (instancetype)init NS_UNAVAILABLE;
@@ -55,7 +55,7 @@
 
 /// A system-defined anchoring strategy.
 NS_REFINED_FOR_SWIFT
-API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios, watchos, tvos, macos)
+API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios) API_UNAVAILABLE(watchos, tvos, macos)
 @interface CAAutomaticAnchoringStrategy : CAAnchoringStrategy
 
 - (instancetype)init;
@@ -65,7 +65,7 @@
 
 /// Anchor to the front of the user's space.
 NS_REFINED_FOR_SWIFT
-API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios, watchos, tvos, macos)
+API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios) API_UNAVAILABLE(watchos, tvos, macos)
 @interface CAFrontAnchoringStrategy : CAAnchoringStrategy
 
 - (instancetype)init;
@@ -75,7 +75,7 @@
 
 /// Anchor to the visual center of a particular UIScene.
 NS_REFINED_FOR_SWIFT
-API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios, watchos, tvos, macos)
+API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios) API_UNAVAILABLE(watchos, tvos, macos)
 @interface CASceneAnchoringStrategy : CAAnchoringStrategy
 
 - (instancetype)initWithSceneIdentifier:(NSString*)sceneIdentifier;
@@ -91,7 +91,7 @@
 ///
 /// The Objective-C version of the ``SpatialAudioExperience`` Swift type.
 NS_REFINED_FOR_SWIFT
-API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios, watchos, tvos, macos)
+API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios) API_UNAVAILABLE(watchos, tvos, macos)
 @interface CASpatialAudioExperience : NSObject <NSSecureCoding, NSCopying>
 
 - (instancetype)init NS_UNAVAILABLE;
@@ -103,7 +103,7 @@
 ///
 /// The Objective-C version of the ``AutomaticSpatialAudio`` Swift type.
 NS_REFINED_FOR_SWIFT
-API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios, watchos, tvos, macos)
+API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios) API_UNAVAILABLE(watchos, tvos, macos)
 @interface CAAutomaticSpatialAudio : CASpatialAudioExperience
 
 - (instancetype)init;
@@ -115,7 +115,7 @@
 ///
 /// The Objective-C version of the ``BypassedSpatialAudio`` Swift type.
 NS_REFINED_FOR_SWIFT
-API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios, watchos, tvos, macos)
+API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios) API_UNAVAILABLE(watchos, tvos, macos)
 @interface CABypassedSpatialAudio : CASpatialAudioExperience
 
 - (instancetype)init;
@@ -127,7 +127,7 @@
 ///
 /// The Objective-C version of the ``FixedSpatialAudio`` Swift type.
 NS_REFINED_FOR_SWIFT
-API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios, watchos, tvos, macos)
+API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios) API_UNAVAILABLE(watchos, tvos, macos)
 @interface CAFixedSpatialAudio : CASpatialAudioExperience
 
 - (instancetype)initWithSoundStageSize:(CASoundStageSize)soundStageSize;
@@ -142,7 +142,7 @@
 ///
 /// The Objective-C version of the ``HeadTrackedSpatialAudio`` Swift type.
 NS_REFINED_FOR_SWIFT
-API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios, watchos, tvos, macos)
+API_AVAILABLE(visionos(26.0)) API_UNAVAILABLE(ios) API_UNAVAILABLE(watchos, tvos, macos)
 @interface CAHeadTrackedSpatialAudio : CASpatialAudioExperience
 
 - (instancetype)initWithSoundStageSize:(CASoundStageSize)soundStageSize

Clone this wiki locally