Skip to content

NearbyInteraction macOS xcode27.0 b1

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

#NearbyInteraction.framework

diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NIConfiguration.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NIConfiguration.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NIConfiguration.h	2026-04-18 22:25:07
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NIConfiguration.h	2026-05-29 23:00:34
@@ -131,6 +131,18 @@
                        bluetoothPeerIdentifier:(NSUUID *)identifier
                                          error:(NSError **)error API_AVAILABLE(ios(16.0)) API_UNAVAILABLE(watchos, tvos, macos);
 
+/**
+ Configure the session for Bluetooth Channel Sounding ranging using a Bluetooth Channel Sounding identifier.
+ 
+ @param bluetoothIdentifier The pairing identifier necessary to form a bluetooth connection for Bluetooth Channel Sounding ranging.
+ @param previousBluetoothIdentifier Optional previous Bluetooth identifier for reconnection scenarios. Defaults to nil for initial configuration.
+ @return The configuration instance.
+ @discussion When previousBluetoothIdentifier is provided, this method provides continuity of the internal state from the previousBluetoothIdentifier to the bluetoothIdentifier, allowing the session to maintain context across reconnections where the Bluetooth identifier may change.
+ */
+- (instancetype)initWithBluetoothChannelSoundingIdentifier:(NSUUID *)bluetoothIdentifier
+                               previousBluetoothIdentifier:(nullable NSUUID *)previousBluetoothIdentifier NS_SWIFT_NAME(init(bluetoothChannelSoundingIdentifier:previousBluetoothIdentifier:))
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos, tvos, macos, visionos);
+
 /** Unavailable */
 - (instancetype)init NS_UNAVAILABLE;
 + (instancetype)new NS_UNAVAILABLE;
@@ -138,6 +150,15 @@
 @end
 
 /**
+ DL-TDoA out-of-band discovery method defines how session scans for DL-TDoA anchors.
+ */
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos, tvos, macos, visionos, macCatalyst)
+typedef NS_ENUM(NSInteger, NIDLTDOADiscoveryMethod) {
+    NIDLTDOADiscoveryMethodWiFi NS_SWIFT_NAME(wifi) = 0,
+    NIDLTDOADiscoveryMethodBluetoothLowEnergy  = 1,
+} NS_SWIFT_NAME(NIDLTDOAConfiguration.DiscoveryMethod);
+
+/**
  A session configuration that enables UWB Down Link Time Difference of Arrival(DL-TDoA) ranging with nearby anchors.
  */
 NS_SWIFT_SENDABLE
@@ -150,9 +171,19 @@
 @property (nonatomic, assign) NSInteger networkIdentifier;
 
 /**
- Initializes a new configuration with a network identifier
+ Current session's out-of-band discovery method.
  */
+@property (nonatomic, assign) NIDLTDOADiscoveryMethod discoveryMethod API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos, tvos, macos, visionos, macCatalyst);
+
+/**
+ Initializes a new configuration with a network identifier(default discovery method - NIDLTDOADiscoveryMethodBluetoothLowEnergy)
+ */
 - (instancetype)initWithNetworkIdentifier:(NSInteger)networkIdentifier;
+
+/**
+ Initializes a new configuration with a network identifier and anchor discovery method
+ */
+- (instancetype)initWithNetworkIdentifier:(NSInteger)networkIdentifier discoveryMethod:(NIDLTDOADiscoveryMethod)discoveryMethod API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos, tvos, macos, visionos, macCatalyst);
 
 /** Unavailable  */
 - (instancetype)init NS_UNAVAILABLE;
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NIDLTDOAMeasurement.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NIDLTDOAMeasurement.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NIDLTDOAMeasurement.h	2026-04-18 22:25:07
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NIDLTDOAMeasurement.h	2026-05-29 23:44:48
@@ -9,6 +9,8 @@
 #import <NearbyInteraction/NIExport.h>
 #import <simd/simd.h>
 
+NS_ASSUME_NONNULL_BEGIN
+
 /**
  The coordinate types of DL-TDOA measurement updates that Nearby Interaction supports.
  */
@@ -31,6 +33,30 @@
 };
 
 /**
+ Represents floor elevation info of a DL-TDOA anchor.
+*/
+NS_SWIFT_SENDABLE
+NS_SWIFT_NAME(NIDLTDOAMeasurement.FloorElevation)
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos, tvos, macos, visionos, macCatalyst)
+NI_EXPORT
+@interface NIDLTDOAMeasurementFloorElevation : NSObject <NSCopying, NSSecureCoding>
+/**
+ Indicates the floor number relative to ground level.  Negative values indicate floors below ground level; positive values indicate floors above.
+*/
+@property (nonatomic, assign, readonly) NSInteger floorNumber;
+
+/**
+ Indicates the anchor's height above the floor in meters.
+*/
+@property (nonatomic, assign, readonly) double height;
+
+/** Unavailable  */
+- (instancetype)init NS_UNAVAILABLE;
++ (instancetype)new NS_UNAVAILABLE;
+
+@end
+
+/**
  Represents a single measurement relative to a DL-TDOA anchor.
 */
 NS_SWIFT_SENDABLE
@@ -43,6 +69,11 @@
 @property (nonatomic, assign, readonly) NSUInteger address;
 
 /**
+ Indicates the address of initator anchor from the same cluster.
+*/
+@property (nonatomic, assign, readonly) NSUInteger clusterInitiatorAddress API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos, tvos, macos, visionos, macCatalyst);
+
+/**
  Indicates the type of this measurement.
 */
 @property (nonatomic, assign, readonly) NIDLTDOAMeasurementType measurementType;
@@ -68,6 +99,13 @@
 @property (nonatomic, assign, readonly) double carrierFrequencyOffset;
 
 /**
+ Indicates the clock frequency offset (CFO) fraction of the responder anchor relative to the initiator anchor (dimensionless).
+ For example, a positive value means for every 1 clock cycle, the responder runs fewer cycles than initiator.
+ Returns nil when measurementType is not NIDLTDOAMeasurementTypeResponse, or when the value is not available.
+*/
+@property (nonatomic, strong, readonly, nullable) NSNumber* responderClockFrequencyOffset NS_REFINED_FOR_SWIFT API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos, tvos, macos, visionos, macCatalyst);
+
+/**
  Inidicates the type of coordinates of this anchor.
 */
 @property (nonatomic, assign, readonly) NIDLTDOACoordinatesType coordinatesType;
@@ -77,13 +115,27 @@
 
  When coordinatesType == NIDLTDOACoordinatesTypeGeodetic:
     coordinates represent geodetic position in 3D space with format {latitude, longitude, altitude}.
+    If `NIDLTDOAMeasurementFloorElevation` is non-nil, the altitude component is replaced by the floor elevation.
+
  When coordinatesType == NIDLTDOACoordinatesTypeRelative:
-    coordinates represent distances from anchor(s) along the 3 axes in 3D space  with format {x, y, z}.
+    coordinates represent distances from anchor(s) along the 3 axes in 3D space with format {x, y, z}.
+    If `NIDLTDOAMeasurementFloorElevation` is non-nil, the z component is replaced by the floor elevation.
  */
 @property (nonatomic, assign, readonly) simd_double3 coordinates;
 
+/**
+   The floor elevation of the anchor, if available.
+                                                                                                                                                                                                                                              
+   When non-nil, this value overrides the altitude component of `coordinates` for `NIDLTDOACoordinatesTypeGeodetic`, and the z component for `NIDLTDOACoordinatesTypeRelative`.
+
+   A nil value indicates that no floor elevation information is available for this anchor.
+ */
+@property (nonatomic, copy, readonly, nullable) NIDLTDOAMeasurementFloorElevation* floorElevation API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos, tvos, macos, visionos, macCatalyst);
+
 /** Unavailable  */
 - (instancetype)init NS_UNAVAILABLE;
 + (instancetype)new NS_UNAVAILABLE;
 
 @end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NIDeviceCapability.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NIDeviceCapability.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NIDeviceCapability.h	2026-04-18 22:25:07
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NIDeviceCapability.h	2026-05-29 23:12:54
@@ -40,6 +40,11 @@
  */
 @property (nonatomic, readonly) BOOL supportsDLTDOAMeasurement API_AVAILABLE(ios(26.0)) API_UNAVAILABLE(watchos, tvos, macos, visionos, macCatalyst);
 
+/**
+ Whether or not this device is capable of participating in a nearby interaction session with Bluetooth Channel Sounding
+ */
+@property (nonatomic, readonly) BOOL supportsBluetoothChannelSounding API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos, tvos, macos, visionos);
+
 @end
 
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NINearbyObject.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NINearbyObject.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NINearbyObject.h	2026-04-18 22:25:07
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NINearbyObject.h	2026-05-29 23:12:54
@@ -43,6 +43,21 @@
 } NS_SWIFT_NAME(NINearbyObject.VerticalDirectionEstimate);
 
 /**
+ An enumeration of the possible motion activity states.
+ */
+API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(watchos, tvos, macos)
+typedef NS_ENUM(NSInteger, NIMotionActivityState) {
+    /** Motion activity state is unknown */
+    NIMotionActivityStateUnknown      = 0,
+
+    /** Motion activity state is stationary */
+    NIMotionActivityStateStationary   = 1,
+
+    /** Motion activity state is moving */
+    NIMotionActivityStateMoving       = 2
+};
+
+/**
  A nearby object with distance and direction measurements.
 */
 API_AVAILABLE(ios(14.0), watchos(7.3)) API_UNAVAILABLE(macos, tvos)
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NISession.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NISession.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NISession.h	2026-04-18 22:25:07
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/NearbyInteraction.framework/Headers/NISession.h	2026-05-29 23:00:34
@@ -10,6 +10,7 @@
 #import <NearbyInteraction/NIConfiguration.h>
 #import <NearbyInteraction/NIDeviceCapability.h>
 #import <NearbyInteraction/NIExport.h>
+#import <NearbyInteraction/NINearbyObject.h>
 #import <NearbyInteraction/NIDLTDOAMeasurement.h>
 #import <simd/simd.h>
 
@@ -95,6 +96,18 @@
  @discussion If the platform does not support camera assistance or an ARSession is provided without enabling cameraAssistanceEnabled property in the NIConfiguration, the NISession will invalidate with error (see NIError.h)
  */
 - (void)setARSession:(ARSession*)session NS_SWIFT_NAME(setARSession(_:)) API_AVAILABLE(ios(16.0)) API_UNAVAILABLE(watchos);
+
+/**
+ Update the motion state for a specific nearby object identified by its discovery token.
+
+ @param motionState The current motion activity state.
+ @param token The discovery token identifying the nearby object.
+ @discussion This information helps improve location estimation accuracy.
+             Call this method whenever the motion state changes for a specific nearby object.
+ */
+- (void)updateMotionState:(NIMotionActivityState)motionState
+      forObjectWithToken:(NIDiscoveryToken *)token NS_SWIFT_NAME(updateMotionState(_:forObjectWithToken:))
+API_AVAILABLE(ios(27.0)) API_UNAVAILABLE(watchos, tvos, macos, visionos);
 
 /**
  Compute a transform in ARKit's world coordinate system for a given nearby object.

Clone this wiki locally