Repository navigation
AccessorySetupKit iOS xcode26.0 b1
Rolf Bjarne Kvinge edited this page Aug 13, 2025
·
3 revisions
#AccessorySetupKit.framework https://github.com/dotnet/macios/pull/23528
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessory.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessory.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessory.h 2025-04-19 08:32:05
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessory.h 2025-05-29 03:31:14
@@ -16,13 +16,15 @@
@class ASPickerDisplayItem;
//---------------------------------------------------------------------------------------------------------------------------
-/*! @brief Authorized Accessory State
-*/
+/// A type that defines values for the state of an accessory.
typedef NS_ENUM( NSInteger, ASAccessoryState )
{
- ASAccessoryStateUnauthorized = 0, // Invalid or Unauthorized Accessory.
- ASAccessoryStateAwaitingAuthorization = 10, // Selected by user but pending for full authorization.
- ASAccessoryStateAuthorized = 20, // Authorized and available Accessory.
+ /// 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);
//---------------------------------------------------------------------------------------------------------------------------
@@ -49,6 +51,9 @@
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
@@ -72,6 +77,11 @@
///
/// 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;
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessorySession.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessorySession.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessorySession.h 2025-04-19 07:59:55
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASAccessorySession.h 2025-05-29 03:32:51
@@ -20,6 +20,7 @@
@class ASAccessorySession;
@class ASMigrationDisplayItem;
@class ASPickerDisplayItem;
+@class ASPickerDisplaySettings;
//===========================================================================================================================
/// Manages accessories.
@@ -33,6 +34,12 @@
/// 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 *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`.
@@ -102,6 +109,20 @@
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 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);
@end
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASCommon.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASCommon.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASCommon.h 2025-04-19 08:32:04
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASCommon.h 2025-05-29 03:31:14
@@ -34,7 +34,35 @@
// 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
}
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASDiscoveryDescriptor.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASDiscoveryDescriptor.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASDiscoveryDescriptor.h 2025-04-19 08:32:05
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASDiscoveryDescriptor.h 2025-05-29 03:32:51
@@ -28,6 +28,16 @@
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
@@ -69,6 +79,24 @@
/// 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
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASPickerDisplayItem.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASPickerDisplayItem.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASPickerDisplayItem.h 2025-04-19 08:32:05
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASPickerDisplayItem.h 2025-05-29 03:31:14
@@ -81,6 +81,10 @@
/// 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.0 ) );
+
@end
NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASPickerDisplaySettings.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASPickerDisplaySettings.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASPickerDisplaySettings.h 1969-12-31 19:00:00
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/ASPickerDisplaySettings.h 2025-05-29 03:31:14
@@ -0,0 +1,41 @@
+/*
+ Copyright (C) 2025 Apple Inc. All Rights Reserved.
+*/
+
+#pragma once
+
+#ifndef ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES
+#error "Please #import instead of this file directly."
+#endif
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+//---------------------------------------------------------------------------------------------------------------------------
+
+/// 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 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;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/AccessorySetupKit.h /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/AccessorySetupKit.h
--- /Applications/Xcode_16.4.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/AccessorySetupKit.h 2025-04-19 08:32:04
+++ /Applications/Xcode_26.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/AccessorySetupKit.framework/Headers/AccessorySetupKit.h 2025-05-29 03:31:14
@@ -16,5 +16,6 @@
#import
#import
#import
+#import
#undef ACCESSORY_SETUP_KIT_INDIRECT_INCLUDES