AccessorySetupKit for privacy-preserving discovery and setup of Bluetooth, Wi-Fi, or Wi-Fi Aware accessories. Use for discovery sessions, picker-based authorization, migration, accessory renaming or removal, custom filtering, and required Info.plist declarations.
التثبيت
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
AccessorySetupKit for privacy-preserving discovery and setup of Bluetooth, Wi-Fi, or Wi-Fi Aware accessories. Use for discovery sessions, picker-based authorization, migration, accessory renaming or removal, custom filtering, and required Info.plist declarations.
AccessorySetupKit
What to open
Use accessory-setup-kit/accessorysetupkit.md for all API details and key names.
Use accessory-setup-kit/AccessorySetupKitEverythingBLEDevelopersNeedToKnow.md for BLE-specific behavior notes and real-world details.
Search within it for: "Discovering and configuring accessories", ASAccessorySession, ASDiscoveryDescriptor, ASPickerDisplayItem, ASMigrationDisplayItem, ASPickerDisplaySettings, and ASAccessoryEventType.
Workflow
Identify whether the accessory uses Bluetooth, Wi-Fi, or Wi-Fi Aware and set up matching discovery properties.
Declare required Info.plist keys for AccessorySetupKit and any Bluetooth identifiers.
Create and activate ASAccessorySession, then handle events on the provided queue.
Present a picker with ASPickerDisplayItem items that match the accessories you support.
Handle .accessoryAdded to connect to the selected device; handle .accessoryRemoved and .accessoryChanged as needed.
Picker guidance
A display item must include a descriptor with a Bluetooth identifier or Wi-Fi SSID/SSID prefix.
For Bluetooth filters, provide at least a service UUID or company identifier, and optionally a name substring or manufacturer/service data mask pair.
To do custom filtering, enable filterDiscoveryResults and handle .accessoryDiscovered by creating ASDiscoveredDisplayItem entries, then call updatePicker(showing:completionHandler:).
If custom filtering needs unlimited time, set discoveryTimeout = .unbounded and finish discovery with finishPickerDiscovery(completionHandler:).
Migration and post-setup
Use ASMigrationDisplayItem to migrate previously-configured accessories into AccessorySetupKit.
Use setup and rename options on picker items when the user should rename or finish setup in-app.
Reminders
Keep discovery descriptors specific to avoid broad Bluetooth access.
For Wi-Fi Aware, set Wi-Fi Aware properties on ASDiscoveryDescriptor before discovery.
Use the session event stream to keep app state in sync with user actions.