-
Notifications
You must be signed in to change notification settings - Fork 558
AccessorySetupKit MacCatalyst xcode26.4 b2
Rolf Bjarne Kvinge edited this page Feb 27, 2026
·
1 revision
#AccessorySetupKit.framework
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASAccessory.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessory.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASAccessory.h 1970-01-01 01:00:00
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessory.h 2026-02-16 10:47:04
@@ -0,0 +1,114 @@
+/*
+ Copyright (C) 2024 Apple Inc. All Rights Reserved.
+*/
+
+#pragma once
+
+#ifndef ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES
+#error "Please #import <AccessorySetupKit/AccessorySetupKit.h> instead of this file directly."
+#endif
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class ASDiscoveryDescriptor;
+@class ASPickerDisplayItem;
+
+//---------------------------------------------------------------------------------------------------------------------------
+/// A type that defines values for the state of an accessory.
+typedef NS_ENUM( NSInteger, ASAccessoryState )
+{
+ /// The accessory is invalid or unauthorized.
+ ASAccessoryStateUnauthorized = 0,
+ /// The accessory is selected, but full authorization is still pending.
+ ASAccessoryStateAwaitingAuthorization = 10,
+ /// The accessory is authorized and available.
+ ASAccessoryStateAuthorized = 20,
+} NS_SWIFT_NAME(ASAccessory.AccessoryState);
+
+//---------------------------------------------------------------------------------------------------------------------------
+/*! @brief Accessory Rename Options
+*/
+typedef NS_OPTIONS( NSUInteger, ASAccessoryRenameOptions )
+{
+ /// An option to change an accessory's SSID along with its display name.
+ ASAccessoryRenameSSID NS_SWIFT_NAME(ssid) = ( 1U << 0 ),
+} NS_SWIFT_NAME(ASAccessory.RenameOptions);
+
+//---------------------------------------------------------------------------------------------------------------------------
+/*! @brief Accessory Support Options
+*/
+typedef NS_OPTIONS( NSUInteger, ASAccessorySupportOptions )
+{
+ /// The accessory supports Bluetooth Low Energy pairing.
+ ASAccessorySupportBluetoothPairingLE = ( 1U << 1 ),
+ /// The accessory supports bridging to Bluetooth classic transport.
+ ///
+ /// This option indicates that when connecting with low energy transport, the accessory supports activating Bluetooth classic transport profiles.
+ ASAccessorySupportBluetoothTransportBridging = ( 1U << 2 ),
+ /// The accessory supports Bluetooth Low Energy HID service.
+ ASAccessorySupportBluetoothHID API_AVAILABLE( ios( 18.4 ) ) = ( 1U << 3 ),
+} NS_SWIFT_NAME(ASAccessory.SupportOptions);
+
+API_AVAILABLE( ios( 26.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos)
+typedef uint64_t ASAccessoryWiFiAwarePairedDeviceID NS_SWIFT_NAME(ASAccessory.WiFiAwarePairedDeviceID);
+
+AS_EXTERN
+API_AVAILABLE( ios( 18.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos)
+NS_SWIFT_SENDABLE
+@interface ASAccessory : NSObject
+
+/// The current authorization state of the accessory.
+@property (readonly, assign, nonatomic) ASAccessoryState state;
+
+/// The accessory's unique Bluetooth identifier, if any.
+///
+/// Use this identifier to establish a connection to the accessory.
+@property (readonly, copy, nullable, nonatomic) NSUUID *bluetoothIdentifier;
+
+/// The accessory's Bluetooth identifier, if any, for use when bridging classic transport profiles.
+@property (readonly, copy, nullable, nonatomic) NSData *bluetoothTransportBridgingIdentifier;
+
+/// The accessory's name, suitable for displaying to someone using your app.
+@property (readonly, copy, nonatomic) NSString *displayName;
+
+/// The accessory's Wi-Fi SSID, if any.
+///
+/// Use this identifier to establish a connection to the accessory.
+@property (readonly, copy, nullable, nonatomic) NSString *SSID;
+
+/// The accessory's Wi-Fi Aware Pairing Identifier.
+///
+/// Use this identifier to establish a connection to the accessory using Wi-Fi Aware Framework.
+@property (readonly, assign, nonatomic) ASAccessoryWiFiAwarePairedDeviceID wifiAwarePairedDeviceID API_AVAILABLE( ios( 26.0 ) );
+
+/// The descriptor used to discover the accessory.
+@property (readonly, copy, nonatomic) ASDiscoveryDescriptor *descriptor;
+
+@end
+
+// MARK: -
+//===========================================================================================================================
+
+/// A discovered accessory, for use in creating a customized picker display item.
+///
+/// When your app's picker uses the ``ASPickerDisplaySettings/Options/filterDiscoveryResults`` option, you receive ``ASAccessoryEventType/accessoryDiscovered`` events that contain this type.
+/// Use the discovered accessory's Bluetooth properties to create a new ``ASDiscoveredDisplayItem``, incorporating traits like a custom accessory name or a newly downloaded product image.
+/// You can then add this item to the picker to allow the person using the app to set up the accessory.
+AS_EXTERN
+API_AVAILABLE( ios( 26.1 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos)
+NS_SWIFT_SENDABLE
+@interface ASDiscoveredAccessory : ASAccessory
+
+/// The Bluetooth advertisement data from the discovered accessory.
+@property (readonly, copy, nullable, nonatomic) NSDictionary *bluetoothAdvertisementData;
+
+/// The Bluetooth RSSI (Received Signal Strength Indicator) value from the discovered accessory.
+///
+/// This value represents the signal strength in dBm when the session discovered the accessory.
+@property (readonly, copy, nullable, nonatomic) NSNumber *bluetoothRSSI NS_REFINED_FOR_SWIFT;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASAccessoryEvent.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessoryEvent.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASAccessoryEvent.h 1970-01-01 01:00:00
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessoryEvent.h 2026-02-16 07:55:11
@@ -0,0 +1,89 @@
+/*
+ Copyright (C) 2024 Apple Inc. All Rights Reserved.
+*/
+
+#ifndef ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES
+#error "Please #import <AccessorySetupKit/AccessorySetupKit.h> instead of this file directly."
+#endif
+
+#pragma once
+
+#import <AccessorySetupKit/ASCommon.h>
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+@class ASAccessory;
+
+//===========================================================================================================================
+/// Type of event.
+typedef NS_ENUM( NSInteger, ASAccessoryEventType )
+{
+ /// An unknown event occurred.
+ ///
+ /// This is a placeholder value used when initializing event type instances.
+ ASAccessoryEventTypeUnknown = 0, // Unknown event. Placeholder for initializing event types.
+ /// The discovery session activated.
+ ASAccessoryEventTypeActivated = 10, // [ASAccessoryEvent] Instance activate completed.
+ /// The discovery session invalidated.
+ ASAccessoryEventTypeInvalidated = 11, // [ASAccessoryEvent] Instance invalidated.
+ /// The migration of an accessory completed.
+ ASAccessoryEventTypeMigrationComplete = 20, // [ASAccessoryEvent] Accessories migration complete.
+ /// The session added an accessory.
+ ASAccessoryEventTypeAccessoryAdded = 30, // [ASAccessoryEvent] Accessory added.
+ /// The session removed an accessory.
+ ASAccessoryEventTypeAccessoryRemoved = 31, // [ASAccessoryEvent] Accessory removed from system.
+ /// The properties of an accessory changed.
+ ASAccessoryEventTypeAccessoryChanged = 32, // [ASAccessoryEvent] Accessory properties changed.
+ /// The session discovered an accessory.
+ ///
+ /// Your app only receives this event if your picker uses the ``ASPickerDisplaySettings/Options/filterDiscoveryResults`` option.
+ ASAccessoryEventTypeAccessoryDiscovered = 33, // [ASAccessoryEvent] Accessory discovered.
+ /// The discovery session picker appeared.
+ ASAccessoryEventTypePickerDidPresent = 40, // [ASAccessoryEvent] Picker did present.
+ /// The discovery session picker dismissed.
+ ASAccessoryEventTypePickerDidDismiss = 50, // [ASAccessoryEvent] Picker did dismiss.
+ /// The discovery session picker started bridging with an accessory.
+ ASAccessoryEventTypePickerSetupBridging = 60, // [ASAccessoryEvent] Picker started bridging with accessory.
+ /// The discovery session picker setup failed.
+ ASAccessoryEventTypePickerSetupFailed = 70, // [ASAccessoryEvent] Picker failed setup for accessory.
+ /// The discovery session picker started pairing with a Bluetooth accessory.
+ ASAccessoryEventTypePickerSetupPairing = 80, // [ASAccessoryEvent] Picker started pairing with accessory.
+ /// The discovery session picker started renaming an accessory.
+ ASAccessoryEventTypePickerSetupRename = 90, // [ASAccessoryEvent] Picker started rename of accessory.
+};
+
+//===========================================================================================================================
+/// Event for status and other updates.
+AS_EXTERN
+API_AVAILABLE( ios( 18.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos)
+NS_SWIFT_SENDABLE
+@interface ASAccessoryEvent : NSObject
+
+/// The type of event, such as accessory addition or removal, or picker presentation or removal.
+///
+/// Some event types may indicate that the event is a subclass of ``ASAccessoryEvent-c.class`` that provides additional properties.
+@property (readonly, assign, nonatomic) ASAccessoryEventType eventType;
+
+/// The accessory involved in the event, if any.
+///
+/// The session populates this member for event types like ``ASAccessoryEventType/accessoryAdded`` and ``ASAccessoryEventType/accessoryChanged``, but not for life cycle or picker events like ``ASAccessoryEventType/activated`` or ``ASAccessoryEventType/pickerDidPresent``.
+@property (readonly, copy, nullable, nonatomic) ASAccessory *accessory;
+
+/// The error associated with the event, if any.
+@property (readonly, copy, nullable, nonatomic) NSError *error;
+
+- (instancetype) init NS_UNAVAILABLE;
+- (instancetype) new NS_UNAVAILABLE;
+
+@end
+
+#ifdef __cplusplus
+}
+#endif
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASAccessorySession.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessorySession.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASAccessorySession.h 1970-01-01 01:00:00
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessorySession.h 2026-02-16 10:46:37
@@ -0,0 +1,157 @@
+/*
+ Copyright (C) 2024 Apple Inc. All Rights Reserved.
+*/
+
+#pragma once
+
+#ifndef ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES
+#error "Please #import <AccessorySetupKit/AccessorySetupKit.h> instead of this file directly."
+#endif
+
+#import <AccessorySetupKit/ASCommon.h>
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class ASAccessory;
+@class ASAccessorySettings;
+@class ASDiscoveryDescriptor;
+@class ASAccessoryEvent;
+@class ASAccessorySession;
+@class ASDiscoveredDisplayItem;
+@class ASMigrationDisplayItem;
+@class ASPickerDisplayItem;
+@class ASPickerDisplaySettings;
+
+//===========================================================================================================================
+/// Manages accessories.
+AS_EXTERN
+API_AVAILABLE( ios( 18.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos)
+NS_SWIFT_SENDABLE
+@interface ASAccessorySession : NSObject
+
+/// An array of previously-selected accessories for this application.
+///
+/// To monitor for changes in this list, use your event handler to watch for the events ``ASAccessoryEventType/accessoryAdded``, ``ASAccessoryEventType/accessoryChanged``, and ``ASAccessoryEventType/accessoryRemoved``.
+@property (readonly, copy, nonatomic) NSArray<ASAccessory *> *accessories;
+
+/// Settings that affect the display of the accessory picker.
+///
+/// Use this property to configure settings like the picker timeout.
+@property (readwrite, copy, nullable, nonatomic) ASPickerDisplaySettings *pickerDisplaySettings
+API_AVAILABLE( ios( 26.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos);
+
+/// Activate the session and start delivering events to an event handler.
+/// - Parameters:
+/// - queue: The dispatch the session uses to deliver events to `eventHandler`.
+/// - eventHandler: A closure or block that receives events generated by the session. Each callback to the event handler provides an ``ASAccessoryEvent`` as a parameter, and expects no return value.
+- (void) activateWithQueue:(dispatch_queue_t) queue eventHandler:(void(^)(ASAccessoryEvent *event)) eventHandler
+NS_SWIFT_NAME(activate(on:eventHandler:));
+
+/// Invalidate the session by stopping any operations.
+///
+/// This call breaks any retain cycles. The session is unusable after calling `invalidate`.
+- (void) invalidate;
+
+/// Present a picker that shows accessories managed by a Device Discovery Extension in your app.
+///
+/// Use this method when your app includes a <doc://com.apple.documentation/documentation/devicediscoveryextension> for its supported accessories. If your app doesn't use DDE, call ``showPickerForDisplayItems:completionHandler:`` with an array of ``ASPickerDisplayItem-c.class`` instances instead.
+///
+/// The session's event handler receives events when this picker displays and dismisses, as well as when the person using the app picks an accessory.
+///
+/// - Parameters:
+/// - completionHandler: A block or closure that the picker calls when it completes the operation. The completion handler receives an <doc://com.apple.documentation/documentation/Foundation/NSError> instance if the picker encounters an error.
+- (void) showPickerWithCompletionHandler:(void(^)(NSError * _Nullable error)) completionHandler
+NS_SWIFT_NAME(showPicker(completionHandler:));
+
+/// Present a picker that shows discovered accessories matching an array of display items.
+///
+/// The session's event handler receives events when this picker displays and dismisses, as well as when the person using the app picks an accessory.
+///
+/// To migrate previously-configured accessories to AccessorySetupKit, add instances of ``ASMigrationDisplayItem`` to the `displayItems` array.
+/// - Parameters:
+/// - displayItems: An array of ``ASPickerDisplayItem`` instances describing accessories your app can set up. The picker displays only discovered accessories that match the properties of items in this array.
+/// - completionHandler: A block or closure that the picker calls when it completes the operation. The completion handler receives an <doc://com.apple.documentation/documentation/Foundation/NSError> instance if the picker encounters an error.
+- (void) showPickerForDisplayItems:(NSArray<ASPickerDisplayItem *> *) displayItems
+ completionHandler:(void(^)(NSError * _Nullable error)) completionHandler
+NS_SWIFT_NAME(showPicker(for:completionHandler:));
+
+/// Finish authorization of a partially-setup accessory.
+///
+/// Use this method in scenarios where an accessory has multiple wireless interfaces. For example, when an accessory has both Bluetooth and Wi-Fi, and your descriptor may only provides an SSID prefix. In this case, the Bluetooth interface onboards first and your app needs to then finish authorization with the full SSID.
+- (void) finishAuthorization:(ASAccessory *) accessory
+ settings:(ASAccessorySettings *) settings
+ completionHandler:(void(^)(NSError * _Nullable error)) completionHandler
+NS_SWIFT_NAME(finishAuthorization(for:settings:completionHandler:));
+
+/// End authorization of a partially-configured accessory as a failure.
+- (void) failAuthorization:(ASAccessory *) accessory
+ completionHandler:(void(^)(NSError * _Nullable error)) completionHandler
+NS_SWIFT_NAME(failAuthorization(for:completionHandler:));
+
+/// Removes an accessory.
+///
+/// - Parameters:
+/// - accessory: The accessory to remove.
+/// - completionHandler: A block or closure that executes after the remove operation completes. The completion handler receives an <doc://com.apple.documentation/documentation/Foundation/NSError> instance if the remove operation encounters an error.
+- (void) removeAccessory:(ASAccessory *) accessory
+ completionHandler:(void(^)(NSError * _Nullable error)) completionHandler
+NS_SWIFT_NAME(removeAccessory(_:completionHandler:));
+
+/// Displays a view to rename an accessory.
+///
+/// To rename a Wi-Fi SSID with this method, use the option ``ASAccessory/RenameOptions/ssid``.
+///
+/// - Parameters:
+/// - accessory: The accessory to rename.
+/// - renameOptions: Options that affect the behavior of the rename operation.
+/// - completionHandler: A block or closure that executes after the rename operation completes. The completion handler receives an <doc://com.apple.documentation/documentation/Foundation/NSError> instance if the rename operation encounters an error.
+- (void) renameAccessory:(ASAccessory *) accessory
+ options:(ASAccessoryRenameOptions) renameOptions
+ completionHandler:(void(^)(NSError * _Nullable error)) completionHandler
+NS_SWIFT_NAME(renameAccessory(_:options:completionHandler:));
+
+/// Displays a view to upgrade an accessory with additional technology permissions.
+///
+/// Call this method to upgrade previously-added SSID-based accessories to use WiFi Aware.
+///
+/// - Parameters:
+/// - accessory: The accessory to update.
+/// - descriptor: An updated descriptor that the picker uses to add new technology authorization for the provided accessory.
+/// - completionHandler: A block or closure that executes after the picker is shown. The completion handler receives an <doc://com.apple.documentation/documentation/Foundation/NSError> instance if the upgrade operation encounters an error. In Swift, you can omit the completion handler by calling the method asynchronously and catching any error thrown by the method.
+- (void) updateAuthorization:(ASAccessory *) accessory
+ descriptor:(ASDiscoveryDescriptor *) descriptor
+ completionHandler:(void(^)(NSError * _Nullable error)) completionHandler
+NS_SWIFT_NAME(updateAuthorization(for:descriptor:completionHandler:))
+API_AVAILABLE( ios( 26.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos);
+
+/// Updates the picker with app-filtered accessories.
+///
+/// You use this method when your picker uses the ``ASPickerDisplaySettings/Options/filterDiscoveryResults`` option to enable manual filtering of discovered accessories.
+/// After creating customized ``ASDiscoveredDisplayItem`` instances for included accessories, call this method to update the picker to show your app-filtered accessories with updated assets.
+///
+/// - Parameters:
+/// - displayItems: The app-filtered accessories to show in the picker.
+/// - completionHandler: A block or closure that executes after the updatePicker operation completes. The completion handler receives an <doc://com.apple.documentation/documentation/Foundation/NSError> instance if the operation encounters an error.
+
+- (void) updatePickerShowingDiscoveredDisplayItems:(NSArray<ASDiscoveredDisplayItem *> *)displayItems
+ completionHandler:(void(^)(NSError * _Nullable error)) completionHandler
+NS_SWIFT_NAME(updatePicker(showing:completionHandler:))
+API_AVAILABLE( ios( 26.1 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos);
+
+/// Finish the discovery session in the picker and show a timeout error.
+///
+/// Use this method if you previously set the picker display setting ``ASPickerDisplaySettings/discoveryTimeout`` to ``ASPickerDisplaySettings/DiscoveryTimeout/unbounded`` in order to perform manual filtering of discovered accessories.
+/// Calling this method finishes the discovery session in the picker and shows a timeout error if the session didn't find any desired accessories.
+///
+/// Calling this method after updating the picker with discovered accessories has no effect.
+///
+/// - Parameters:
+/// - completionHandler: A block or closure that executes after this operation completes. The completion handler receives an <doc://com.apple.documentation/documentation/Foundation/NSError> instance if the operation encounters an error.
+- (void) finishPickerDiscovery:(void(^)(NSError * _Nullable error)) completionHandler
+NS_SWIFT_NAME(finishPickerDiscovery(completionHandler:))
+API_AVAILABLE( ios( 26.1 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos);
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASAccessorySettings.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessorySettings.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASAccessorySettings.h 1970-01-01 01:00:00
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessorySettings.h 2026-02-16 07:55:11
@@ -0,0 +1,33 @@
+/*
+ Copyright (C) 2024 Apple Inc. All Rights Reserved.
+*/
+
+#pragma once
+
+#ifndef ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES
+#error "Please #import <AccessorySetupKit/AccessorySetupKit.h> instead of this file directly."
+#endif
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+AS_EXTERN
+API_AVAILABLE( ios( 18.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos)
+NS_SWIFT_SENDABLE
+@interface ASAccessorySettings : NSObject
+
+/// An empty settings object.
+@property (class, readonly, nonatomic) ASAccessorySettings *defaultSettings;
+
+/// A hotspot identifier that clients can use to connect to an accessory's hotspot.
+@property (readwrite, copy, nullable, nonatomic) NSString *SSID;
+
+/// A 6-byte identifier for bridging classic transport profiles.
+///
+/// AccessorySetupKit ignores this property if another app already authorized and bridged the accessory.
+@property (readwrite, copy, nullable, nonatomic) NSData *bluetoothTransportBridgingIdentifier;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASCommon.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASCommon.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASCommon.h 1970-01-01 01:00:00
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASCommon.h 2026-02-16 07:55:11
@@ -0,0 +1,71 @@
+/*
+ Copyright (C) 2024 Apple Inc. All Rights Reserved.
+*/
+
+#ifndef ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES
+#error "Please #import <AccessorySetupKit/AccessorySetupKit.h> instead of this file directly."
+#endif
+
+#pragma once
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/// Marks an API as exported.
+#ifndef AS_EXTERN
+#ifdef __cplusplus
+#define AS_EXTERN extern "C" __attribute__((visibility("default")))
+#else
+#define AS_EXTERN extern __attribute__((visibility("default")))
+#endif
+#endif
+
+/// Work around some projects disabling OS_OBJECT_USE_OBJC by mapping to strong/assign as needed.
+#if defined( OS_OBJECT_USE_OBJC ) && OS_OBJECT_USE_OBJC
+ #define as_os_ownership strong
+#else
+ #define as_os_ownership assign
+#endif
+
+// MARK: == Constants and Types ==
+
+/// The type used to identify a Bluetooth accessory provider.
+typedef uint16_t ASBluetoothCompanyIdentifier NS_TYPED_EXTENSIBLE_ENUM;
+
+// MARK: - Interfaces
+//===========================================================================================================================
+
+/// A type that specifies how to filter a property against a given string and comparison options.
+AS_EXTERN
+API_AVAILABLE( ios( 26.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos)
+NS_SWIFT_SENDABLE
+@interface ASPropertyCompareString : NSObject
+
+/// The string to compare against.
+@property (readonly, copy, nonatomic) NSString *string;
+
+/// Comparison options to apply when comparing strings.
+@property (readonly, assign, nonatomic) NSStringCompareOptions compareOptions;
+
+/// Creates a property compare string instance with the given string and comparison options.
+/// - Parameters:
+/// - string: The string to compare against.
+/// - compareOptions: Options to apply when comparing strings.
+- (instancetype)initWithString:(NSString *) string compareOptions:(NSStringCompareOptions) compareOptions
+ NS_DESIGNATED_INITIALIZER;
+
+- (instancetype) init NS_UNAVAILABLE;
+- (instancetype) new NS_UNAVAILABLE;
+
+@end
+
+#ifdef __cplusplus
+}
+#endif
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASDiscoveryDescriptor.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASDiscoveryDescriptor.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASDiscoveryDescriptor.h 1970-01-01 01:00:00
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASDiscoveryDescriptor.h 2026-02-16 07:55:11
@@ -0,0 +1,103 @@
+/*
+ Copyright (C) 2024 Apple Inc. All Rights Reserved.
+*/
+
+#pragma once
+
+#ifndef ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES
+#error "Please #import <AccessorySetupKit/AccessorySetupKit.h> instead of this file directly."
+#endif
+
+#import <AccessorySetupKit/ASCommon.h>
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class CBUUID;
+
+//---------------------------------------------------------------------------------------------------------------------------
+/*! @brief Discovery Range
+*/
+typedef NS_ENUM( NSInteger, ASDiscoveryDescriptorRange )
+{
+ /// The default range in which to discover accessories.
+ ASDiscoveryDescriptorRangeDefault = 0,
+ /// A range in the immediate vicinity of the device performing accessory discovery.
+ ///
+ /// This range means that an accessory is right next to the device running your app.
+ ASDiscoveryDescriptorRangeImmediate = 10,
+} NS_SWIFT_NAME(ASDiscoveryDescriptor.Range);
+
+//---------------------------------------------------------------------------------------------------------------------------
+/// A type that defines service roles for Wi-Fi Aware accessories.
+typedef NS_ENUM( NSInteger, ASDiscoveryDescriptorWiFiAwareServiceRole )
+{
+ /// The subscriber service role.
+ ASDiscoveryDescriptorWiFiAwareServiceRoleSubscriber = 10,
+ /// The publisher service role.
+ ASDiscoveryDescriptorWiFiAwareServiceRolePublisher = 20,
+} NS_SWIFT_NAME(ASDiscoveryDescriptor.WiFiAwareServiceRole);
+
+AS_EXTERN
+API_AVAILABLE( ios( 18.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos)
+NS_SWIFT_SENDABLE
+@interface ASDiscoveryDescriptor : NSObject
+
+/// Options supported by an accessory.
+@property (readwrite, assign, nonatomic) ASAccessorySupportOptions supportedOptions;
+
+/// The accessory's 16-bit Bluetooth Company Identifier.
+@property (readwrite, assign, nonatomic) ASBluetoothCompanyIdentifier bluetoothCompanyIdentifier;
+
+/// A byte buffer that matches the accessory's Bluetooth manufacturer data.
+@property (readwrite, copy, nullable, nonatomic) NSData *bluetoothManufacturerDataBlob;
+
+/// The accessory's Bluetooth manufacturer data mask.
+@property (readwrite, copy, nullable, nonatomic) NSData *bluetoothManufacturerDataMask;
+
+/// The accessory's over-the-air Bluetooth name substring compare options.
+@property (readwrite, assign, nonatomic) NSStringCompareOptions bluetoothNameSubstringCompareOptions
+API_AVAILABLE( ios( 18.2 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos);
+
+/// The accessory's over-the-air Bluetooth name substring.
+@property (readwrite, copy, nullable, nonatomic) NSString *bluetoothNameSubstring;
+
+/// A property that tells the session to discover accessories within a specific Bluetooth range.
+@property (readwrite, assign, nonatomic) ASDiscoveryDescriptorRange bluetoothRange;
+
+/// A byte buffer that matches the accessory's Bluetooth service data.
+@property (readwrite, copy, nullable, nonatomic) NSData *bluetoothServiceDataBlob;
+
+/// The accessory's Bluetooth service data mask.
+@property (readwrite, copy, nullable, nonatomic) NSData *bluetoothServiceDataMask;
+
+/// The accessory's Bluetooth service UUID.
+@property (readwrite, copy, nullable, nonatomic) CBUUID *bluetoothServiceUUID;
+
+/// The SSID of the accessory's Wi-Fi network.
+@property (readwrite, copy, nullable, nonatomic) NSString *SSID;
+
+/// The prefix string of SSID of the accessory's Wi-Fi network.
+@property (readwrite, copy, nullable, nonatomic) NSString *SSIDPrefix;
+
+/// The accessory's Wi-Fi Aware's service name if available.
+@property (readwrite, copy, nullable, nonatomic) NSString *wifiAwareServiceName
+API_AVAILABLE( ios( 26.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos);
+
+/// The role of the accessory's Wi-Fi Aware's service.
+///
+/// This property defaults to ``ASDiscoveryDescriptor/WiFiAwareServiceRole/subscriber``
+@property (readwrite, assign, nonatomic) ASDiscoveryDescriptorWiFiAwareServiceRole wifiAwareServiceRole
+API_AVAILABLE( ios( 26.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos);
+
+/// The accessory's Wi-Fi Aware model name and matching options.
+@property (readwrite, copy, nullable, nonatomic) ASPropertyCompareString *wifiAwareModelNameMatch
+API_AVAILABLE( ios( 26.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos);
+
+/// The accessory's Wi-Fi Aware vendor name and matching options.
+@property (readwrite, copy, nullable, nonatomic) ASPropertyCompareString *wifiAwareVendorNameMatch
+API_AVAILABLE( ios( 26.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos);
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASErrors.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASErrors.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASErrors.h 1970-01-01 01:00:00
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASErrors.h 2026-02-16 07:55:11
@@ -0,0 +1,47 @@
+/*
+ Copyright (C) 2024 Apple Inc. All Rights Reserved.
+*/
+
+#pragma once
+
+#ifndef ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES
+#error "Please #import <AccessorySetupKit/AccessorySetupKit.h> instead of this file directly."
+#endif
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+/// NSError domain for AccessorySetupKit errors.
+AS_EXTERN NSErrorDomain const ASErrorDomain;
+
+/// Error codes used with ASErrorDomain.
+typedef NS_ERROR_ENUM( ASErrorDomain, ASErrorCode )
+{
+ /// A code that represents a successful action.
+ ASErrorCodeSuccess = 0, // Success.
+ /// An underlying failure with an unknown cause.
+ ASErrorCodeUnknown = 1, // Underlying failure with an unknown cause.
+ /// Session activation failed.
+ ASErrorCodeActivationFailed = 100, // Unable to activate discovery session.
+ /// The session was unable to establish a connection.
+ ASErrorCodeConnectionFailed = 150, // Unable to establish connection with accessory.
+ /// Accessory discovery timed out.
+ ASErrorCodeDiscoveryTimeout = 200, // Discovery timed out.
+ /// The framework couldn't find the app extension.
+ ASErrorCodeExtensionNotFound = 300, // Unable to find App Extension.
+ /// The session invalidated prior to completing the operation.
+ ASErrorCodeInvalidated = 400, // Invalidate was called before the operation completed normally.
+ /// The session received an invalid request.
+ ASErrorCodeInvalidRequest = 450, // Invalid request.
+ /// The picker received a show request when it was already active.
+ ASErrorCodePickerAlreadyActive = 500, // Picker already active.
+ /// The picker can't be used because the app is in the background.
+ ASErrorCodePickerRestricted = 550, // Picker restricted due to application in background.
+ /// The person using the app canceled the operation.
+ ASErrorCodeUserCancelled = 700, // User cancelled.
+ /// The person using the app restricted access.
+ ASErrorCodeUserRestricted = 750, // Access restricted by user.
+} API_AVAILABLE( ios( 18.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos);
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASPickerDisplayItem.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASPickerDisplayItem.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASPickerDisplayItem.h 1970-01-01 01:00:00
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASPickerDisplayItem.h 2026-02-16 07:55:11
@@ -0,0 +1,115 @@
+/*
+ Copyright (C) 2024 Apple Inc. All Rights Reserved.
+*/
+
+#pragma once
+
+#ifndef ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES
+#error "Please #import <AccessorySetupKit/AccessorySetupKit.h> instead of this file directly."
+#endif
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class ASDiscoveredAccessory;
+@class ASDiscoveryDescriptor;
+
+//---------------------------------------------------------------------------------------------------------------------------
+/*! @brief Accessory Setup Options
+*/
+typedef NS_OPTIONS( NSUInteger, ASPickerDisplayItemSetupOptions )
+{
+ /// An option to ask the person using the app to rename the accessory.
+ ASPickerDisplayItemSetupRename = ( 1U << 0 ), // Ask user to rename accessory.
+ /// An option to require the app to finish accessory authorization before showing the setup view.
+ ///
+ /// If the accessory supports ``ASAccessory/SupportOptions/bluetoothPairingLE``, then the app needs to start pairing by accessing a protected GATT characteristic.
+ ASPickerDisplayItemSetupConfirmAuthorization = ( 1U << 1 ), // App session finishes accessory authorization.
+ /// An option to ask the person setting up the accessory to finish additional setup in the app after the accessory is authorized.
+ ASPickerDisplayItemSetupFinishInApp = ( 1U << 2 ), // Display instruction to finish setup in app after accessory is authorized to use.
+} NS_SWIFT_NAME(ASPickerDisplayItem.SetupOptions);
+
+AS_EXTERN
+API_AVAILABLE( ios( 18.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos)
+NS_SWIFT_SENDABLE
+@interface ASPickerDisplayItem : NSObject
+
+/// >Note: The picker ignores `name` and `productImage` if the displayed item matched with an already authorized accessory for another app.
+
+/// The accessory name to display in the picker.
+@property (readonly, copy, nonatomic) NSString *name;
+
+/// An image of the accessory to display in the picker.
+@property (readonly, copy, nonatomic) UIImage *productImage;
+
+/// A descriptor that the picker uses to determine which discovered accessories to display.
+@property (readonly, copy, nonatomic) ASDiscoveryDescriptor *descriptor;
+
+/// Options to allow renaming a matched accessory.
+///
+/// To permit renaming, include ``SetupOptions-swift.struct/rename`` in the ``setupOptions-c.property``
+@property (readwrite, assign, nonatomic) ASAccessoryRenameOptions renameOptions;
+
+/// Custom setup options for the accessory.
+@property (readwrite, assign, nonatomic) ASPickerDisplayItemSetupOptions setupOptions;
+
+/// Creates a picker display item with a name and image to display and a descriptor to match discovered accessories.
+/// - Parameters:
+/// - name: The accessory name to display in the picker.
+/// - productImage: An image of the accessory to display in the picker.
+/// - descriptor: A descriptor that the picker uses to determine which discovered accessories to display.
+- (instancetype)initWithName:(NSString *) name productImage:(UIImage *) productImage
+ descriptor:(ASDiscoveryDescriptor *) descriptor NS_DESIGNATED_INITIALIZER;
+
+- (instancetype) init NS_UNAVAILABLE;
+- (instancetype) new NS_UNAVAILABLE;
+
+@end
+
+// MARK: -
+//===========================================================================================================================
+
+AS_EXTERN
+API_AVAILABLE( ios( 18.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos)
+NS_SWIFT_SENDABLE
+@interface ASMigrationDisplayItem : ASPickerDisplayItem
+
+/// The Bluetooth identifier of the accessory to migrate.
+@property (readwrite, copy, nullable, nonatomic) NSUUID *peripheralIdentifier;
+
+/// The Wi-Fi hotspot SSID of the accessory to migrate.
+@property (readwrite, copy, nullable, nonatomic) NSString *hotspotSSID;
+
+/// The Wi-Fi Aware paired device identififer of the accessory to migrate.
+@property (readwrite, assign, nonatomic) ASAccessoryWiFiAwarePairedDeviceID wifiAwarePairedDeviceID
+API_AVAILABLE( ios( 26.1 ) );
+
+@end
+
+//===========================================================================================================================
+
+/// A picker display item created from customizing a discovered accessory.
+///
+/// Use this type when your app's picker uses the ``ASPickerDisplaySettings/Options/filterDiscoveryResults`` option.
+/// With this option enabled, your discovery session receives ``ASAccessoryEventType/accessoryDiscovered`` events with discovered accessories.
+/// To include a discovered accessory in the picker, create an instance of this class, optionally using the Bluetooth properties of the event's ``ASDiscoveredAccessory`` to provide a more specific name or product image.
+/// Then send the `ASDiscoveredDisplayItem` to the picker with the session's ``ASAccessorySession/updatePicker(showing:completionHandler:)`` method.
+AS_EXTERN
+API_AVAILABLE( ios( 26.1 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos)
+NS_SWIFT_SENDABLE
+@interface ASDiscoveredDisplayItem : ASPickerDisplayItem
+
+/// Creates a discovered picker display item with a name and image to display and a descriptor to match discovered accessories.
+/// - Parameters:
+/// - name: The accessory name to display in the picker.
+/// - productImage: An image of the accessory to display in the picker.
+/// - accessory: App filtered accessory to display in the picker.
+- (instancetype)initWithName:(NSString *) name productImage:(UIImage *) productImage accessory:(ASDiscoveredAccessory *) accessory;
+
+- (instancetype)initWithName:(NSString *) name productImage:(UIImage *) productImage
+ descriptor:(ASDiscoveryDescriptor *) descriptor NS_UNAVAILABLE;
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASPickerDisplaySettings.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASPickerDisplaySettings.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/ASPickerDisplaySettings.h 1970-01-01 01:00:00
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASPickerDisplaySettings.h 2026-02-16 07:55:11
@@ -0,0 +1,63 @@
+/*
+ Copyright (C) 2025 Apple Inc. All Rights Reserved.
+*/
+
+#pragma once
+
+#ifndef ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES
+#error "Please #import <AccessorySetupKit/AccessorySetupKit.h> instead of this file directly."
+#endif
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+//===========================================================================================================================
+/*! @brief Picker Options
+*/
+typedef NS_OPTIONS( NSUInteger, ASPickerDisplaySettingsOptions )
+{
+ /// An option to pass discovered accessories to the app for more custom filtering, before they're displayed in the picker for selection.
+ ///
+ /// When your picker uses this option, your ``ASAccessorySession-class`` receives events of type ``ASAccessoryEventType/accessoryDiscovered``.
+ /// Handle this event by examining the discovered accessory.
+ /// To include it in the picker, create a new ``ASDiscoveredDisplayItem`` for it and call ``ASAccessorySession/updatePicker(showing:completionHandler:)``.
+ ASPickerDisplaySettingsOptionFilterDiscoveryResults = ( 1U << 0 )
+} NS_SWIFT_NAME(ASPickerDisplaySettings.Options);
+
+//---------------------------------------------------------------------------------------------------------------------------
+
+/// The type used for the accessory picker's discovery timeout value.
+typedef NSTimeInterval ASPickerDisplaySettingsDiscoveryTimeout NS_TYPED_ENUM NS_SWIFT_NAME(ASPickerDisplaySettings.DiscoveryTimeout) API_AVAILABLE( ios( 26.0 ) );
+
+/// A picker discovery timeout value that times out after about about 60 seconds.
+AS_EXTERN ASPickerDisplaySettingsDiscoveryTimeout const ASPickerDisplaySettingsDiscoveryTimeoutShort API_AVAILABLE( ios( 26.0 ) );
+/// A picker discovery timeout value that times out after about two minutes.
+AS_EXTERN ASPickerDisplaySettingsDiscoveryTimeout const ASPickerDisplaySettingsDiscoveryTimeoutMedium API_AVAILABLE( ios( 26.0 ) );
+/// A picker discovery timeout value that times out after about five minutes.
+AS_EXTERN ASPickerDisplaySettingsDiscoveryTimeout const ASPickerDisplaySettingsDiscoveryTimeoutLong API_AVAILABLE( ios( 26.0 ) );
+/// A picker discovery that only times out when the app tells it to.
+///
+/// Use this timeout value if you set the picker display option ``ASPickerDisplaySettings/Options/filterDiscoveryResults`` and need unlimited time for filtering.
+/// After performing manual discovery, perform the manual timeout by calling the ``ASAccessorySession`` method ``ASAccessorySession/finishPickerDiscovery(completionHandler:)``.
+/// This process shows a timeout message if your filtering added no accessories to the picker, or returns silently if you updated the picker.
+AS_EXTERN ASPickerDisplaySettingsDiscoveryTimeout const ASPickerDisplaySettingsDiscoveryTimeoutUnbounded API_AVAILABLE( ios( 26.1 ) );
+
+/// A type that contains settings to customize the display of the accessory picker
+AS_EXTERN
+API_AVAILABLE( ios( 26.0 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos)
+NS_SWIFT_SENDABLE
+@interface ASPickerDisplaySettings : NSObject
+
+/// An empty settings object.
+@property (class, readonly, nonatomic) ASPickerDisplaySettings *defaultSettings;
+
+/// Custom timeout for picker. Default is 30 seconds.
+@property (readwrite, assign, nonatomic) ASPickerDisplaySettingsDiscoveryTimeout discoveryTimeout;
+
+/// Custom options for the picker.
+@property (readwrite, assign, nonatomic) ASPickerDisplaySettingsOptions options API_AVAILABLE( ios( 26.1 ) ) API_UNAVAILABLE(macos, macCatalyst, watchos, tvos, visionos);
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/AccessorySetupKit.h /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/AccessorySetupKit.h
--- /Applications/Xcode_26.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/FrameworksAccessorySetupKit.framework/Headers/AccessorySetupKit.h 1970-01-01 01:00:00
+++ /Applications/Xcode_26.4.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/iOSSupport/System/Library/Frameworks/AccessorySetupKit.framework/Headers/AccessorySetupKit.h 2026-02-16 07:55:11
@@ -0,0 +1,21 @@
+/*
+ Copyright (C) 2024 Apple Inc. All Rights Reserved.
+*/
+
+#pragma once
+
+#ifndef ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES
+#define ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES
+#endif
+
+#import <AccessorySetupKit/ASCommon.h>
+#import <AccessorySetupKit/ASErrors.h>
+#import <AccessorySetupKit/ASAccessory.h>
+#import <AccessorySetupKit/ASAccessoryEvent.h>
+#import <AccessorySetupKit/ASAccessorySession.h>
+#import <AccessorySetupKit/ASAccessorySettings.h>
+#import <AccessorySetupKit/ASDiscoveryDescriptor.h>
+#import <AccessorySetupKit/ASPickerDisplayItem.h>
+#import <AccessorySetupKit/ASPickerDisplaySettings.h>
+
+#undef ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES