Skip to content

CoreBluetooth tvOS xcode27.0 b1

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

#CoreBluetooth.framework

diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBCentralManager.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBCentralManager.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBCentralManager.h	2026-04-23 23:23:27
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBCentralManager.h	2026-06-04 02:26:11
@@ -61,10 +61,12 @@
  *  @discussion The set of device specific features.
  *
  *	@constant CBCentralManagerFeatureExtendedScanAndConnect      The hardware supports extended scans and enhanced connection creation
+ *    @constant CBCentralManagerFeatureChannelSounding             The hardware and region supports channel sounding
  *
  */
 typedef NS_OPTIONS(NSUInteger, CBCentralManagerFeature) {
 	CBCentralManagerFeatureExtendedScanAndConnect CB_CM_API_AVAILABLE = 1UL << 0,
+    CBCentralManagerFeatureChannelSounding API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macos, watchos, tvos, visionos) = 1UL << 10
 } NS_SWIFT_NAME(CBCentralManager.Feature);
 
 @protocol CBCentralManagerDelegate;
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBError.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBError.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBError.h	2026-04-18 18:53:55
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBError.h	2026-05-29 22:54:21
@@ -45,6 +45,8 @@
 	CBErrorTooManyLEPairedDevices NS_ENUM_AVAILABLE(11_0, 14_0) = 16,
     CBErrorLeGattExceededBackgroundNotificationLimit API_AVAILABLE(watchos(9.0)) API_UNAVAILABLE(macos,ios, tvos) = 17,
     CBErrorLeGattNearBackgroundNotificationLimit API_AVAILABLE(watchos(9.0)) API_UNAVAILABLE(macos,ios, tvos) = 18,
+    CBErrorChannelSoundingConfigurationFailed API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macos, watchos, tvos, visionos) = 19,
+    CBErrorChannelSoundingProcedureFailed API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macos, watchos, tvos, visionos) = 20,
 };
 
 CB_EXTERN NSString * const CBATTErrorDomain;
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h	2026-04-23 23:23:26
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/System/Library/Frameworks/CoreBluetooth.framework/Headers/CBPeripheral.h	2026-06-04 02:27:03
@@ -43,8 +43,19 @@
 	CBCharacteristicWriteWithoutResponse,
 };
 
+/*!
+ *  @enum CBChannelSoundingSessionConfigurationRole
+ *
+ *  @discussion Specifies which channel sounding role a CBPeripheral should assume for a given session.
+ *
+ */
+typedef NS_ENUM(NSInteger, CBChannelSoundingSessionConfigurationRole) {
+    CBChannelSoundingSessionConfigurationRoleInitiator = 0
+} API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macos, watchos, tvos, visionos) NS_SWIFT_NAME(CBChannelSoundingSessionConfiguration.Role);
+
 @protocol CBPeripheralDelegate;
 @class CBService, CBCharacteristic, CBDescriptor, CBUUID;
+@class CBChannelSoundingSessionConfiguration, CBChannelSoundingProcedureResults;
 
 /*!
  *  @class CBPeripheral
@@ -258,6 +269,27 @@
  *  @see				peripheral:didWriteValueForCharacteristic:error:
  */
 - (void)openL2CAPChannel:(CBL2CAPPSM)PSM NS_AVAILABLE(10_14, 11_0);
+
+/*!
+ *  @method startChannelSoundingSession:
+ *
+ *  @param configuration    An object specifying the channel sounding session configuration.
+ *
+ *  @discussion             Initiate a channel sounding session.
+ *
+ *  @see                    peripheral:didReceiveChannelSoundingProcedureResults:error
+ */
+- (void)startChannelSoundingSession:(CBChannelSoundingSessionConfiguration *)configuration API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macos, watchos, tvos, visionos);
+
+/*!
+ *  @method cancelChannelSoundingSession
+ *
+ *  @discussion             Cancels the active channel sounding session, if it exists.
+ *
+ *  @see                    peripheral:didCompleteChannelSoundingSession:
+ */
+- (void)cancelChannelSoundingSession API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macos, watchos, tvos, visionos);
+
 @end
 
 
@@ -441,6 +473,57 @@
  */
 - (void)peripheral:(CBPeripheral *)peripheral didOpenL2CAPChannel:(nullable CBL2CAPChannel *)channel error:(nullable NSError *)error;
 
+/*!
+ *  @method peripheral:didReceiveChannelSoundingProcedureResults:error:
+ *
+ *  @param peripheral    The peripheral providing this update.
+ *  @param results       An object containing the results of a channel sounding procedure.
+ *  @param error         If an error occurred, the cause of the failure.
+ *
+ *  @discussion          This method returns the results of a channel sounding procedure.
+ */
+- (void)peripheral:(CBPeripheral *)peripheral didReceiveChannelSoundingProcedureResults:(nullable CBChannelSoundingProcedureResults *)results error:(nullable NSError *)error API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macos, watchos, tvos, visionos);
+
+/*!
+ *  @method peripheral:didCompleteChannelSoundingSession:
+ *
+ *  @param peripheral    The peripheral providing this update.
+ *  @param error         If an error occurred, the cause of the failure.
+ *
+ *  @discussion          This method is called when a channel sounding session completes.
+ */
+- (void)peripheral:(CBPeripheral *)peripheral didCompleteChannelSoundingSession:(nullable NSError *)error API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macos, watchos, tvos, visionos);
+
+
+@end
+
+CB_EXTERN_CLASS
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macos, watchos, tvos, visionos)
+__attribute__((objc_subclassing_restricted))
+@interface CBChannelSoundingSessionConfiguration : NSObject
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * The channel sounding role a CBPeripheral should assume for a given session.
+ */
+@property (nonatomic, readonly) CBChannelSoundingSessionConfigurationRole role;
+
+- (instancetype)initWithRole:(CBChannelSoundingSessionConfigurationRole)role NS_DESIGNATED_INITIALIZER;
+
+@end
+
+CB_EXTERN_CLASS
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(macos, watchos, tvos, visionos)
+__attribute__((objc_subclassing_restricted))
+@interface CBChannelSoundingProcedureResults : NSObject
+
+- (instancetype)init NS_UNAVAILABLE;
+
+/*!
+ * The measured distance in meters of a CBPeripheral.
+ */
+@property (nonatomic, readonly) double distance;
 
 @end
 

Clone this wiki locally