accessorysetupkit

Configure AccessorySetupKit sessions for privacy-preserving Bluetooth and Wi-Fi accessory discovery.

Updated May 6, 2026
One-click install
npx skills add https://github.com/Roy-wonji/claude-config --skill accessorysetupkit-roy-wonji
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: accessorysetupkit
Source: https://github.com/Roy-wonji/claude-config/tree/main/skills/swift-ios-skills/skills/accessorysetupkit
Command: npx skills add https://github.com/Roy-wonji/claude-config --skill accessorysetupkit-roy-wonji

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

AccessorySetupKit removes the friction and overreach of broad Bluetooth/Wi‑Fi permission prompts by providing a privacy-preserving, per-accessory authorization flow for discovering and setting up nearby devices.

Core Features & Use Cases

  • Privacy-preserving accessory discovery: Use ASAccessorySession to present a system-managed picker so users grant access per accessory.
  • Descriptor-based targeting: Define ASDiscoveryDescriptor rules for BLE devices (service UUIDs, company identifiers, name substrings, and advertisement data matching) and for Wi‑Fi devices (SSID or SSID prefix).
  • Lifecycle event coordination: Handle ASAccessoryEvent callbacks for activation, accessory added/changed/removed, picker presentation/dismissal, migration, and setup/authorization progress.
  • Migration from CoreBluetooth: Use ASMigrationDisplayItem to transition existing, already-authorized accessories into the new authorization model without breaking discovery flow.

Quick Start

Configure your app’s Info.plist for NSAccessorySetupSupports (Bluetooth and/or WiFi) and then activate an ASAccessorySession to show a picker created from ASPickerDisplayItem instances that include a correctly matched ASDiscoveryDescriptor.

Frequently Asked Questions about accessorysetupkit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up Bluetooth accessories with per-device authorization in iOS 18?

To set up Bluetooth accessories with per-device authorization in iOS 18, use AccessorySetupKit to present a system-managed picker, allowing users to grant access to specific nearby devices instead of triggering broad system permission prompts.

What is the best way to migrate existing authorized CoreBluetooth accessories to AccessorySetupKit?

Migrating authorized CoreBluetooth accessories to AccessorySetupKit involves using ASMigrationDisplayItem to transition existing devices into the new privacy-preserving authorization model, ensuring discovery flows remain intact without requiring broad Bluetooth permissions.

How do I target specific Wi-Fi and BLE devices for discovery using AccessorySetupKit?

Target specific Wi-Fi and BLE devices for discovery by defining ASDiscoveryDescriptor rules that match BLE service UUIDs, company identifiers, name substrings, or Wi-Fi SSID prefixes, ensuring the picker only displays intended accessories.

Do I need specific Info.plist entitlements to use AccessorySetupKit for device pairing?

Yes, using AccessorySetupKit for device pairing requires configuring your app's Info.plist with NSAccessorySetupSupports for Bluetooth and/or Wi-Fi, and ensuring descriptor and plist values align correctly before activating an ASAccessorySession.

Why does my AccessorySetupKit picker fail to present during accessory onboarding?

AccessorySetupKit picker presentation fails if the ASAccessorySession is not activated before showing the picker, or if ASPickerDisplayItem instances do not correctly match the defined ASDiscoveryDescriptor rules during accessory onboarding.

How does AccessorySetupKit handle accessory and session lifecycle transitions?

AccessorySetupKit handles accessory and session lifecycle transitions through event-driven ASAccessoryEvent callbacks, managing activation, accessory additions, picker dismissal, migration, and setup progress updates without requiring continuous polling.