Skills

Accessorysetupkit

Discover and configure Bluetooth and Wi-Fi accessories using AccessorySetupKit.

Install

npx skills add dpearson2699/swift-ios-skills --skill accessorysetupkit -g -a claude-code -y
Category
Engineering
Updated
3mo ago
License
See repository
Context cost
Mediumabout 3,000 tokens
Runs scripts
No, instructions only

What it does

Discover and configure Bluetooth and Wi-Fi accessories using AccessorySetupKit. Use when presenting a privacy-preserving accessory picker, defining discovery descriptors for BLE or Wi-Fi devices, handling accessory session events, migrating from CoreBluetooth permission-based scanning, or setting up accessories without requiring broad Bluetooth permissions.

AccessorySetupKit

Use the iOS 18+ system picker for privacy-preserving Bluetooth/Wi-Fi accessory discovery and authorization, then hand off communication to CoreBluetooth or NetworkExtension.

Contents

Setup and Entitlements

Info.plist Configuration

Add these keys to the app's Info.plist:

KeyTypePurpose
NSAccessorySetupSupports[String]Required. Array containing Bluetooth and/or WiFi
NSAccessorySetupBluetoothServices[String]Service UUIDs the app discovers (Bluetooth)
NSAccessorySetupBluetoothNames[String]Bluetooth names or substrings to match
NSAccessorySetupBluetoothCompanyIdentifiers[String]Two-byte Bluetooth company identifiers

The Bluetooth-specific keys must match the values used in ASDiscoveryDescriptor. If the app uses identifiers, names, or services not declared in Info.plist, the app crashes during AccessorySetupKit discovery. For Wi-Fi accessories, include WiFi in NSAccessorySetupSupports and match the descriptor's SSID rule.

No Bluetooth Permission Required

When an app declares NSAccessorySetupSupports with Bluetooth, creating a CBCentralManager no longer triggers the system Bluetooth permission dialog. The central manager's state transitions to poweredOn only when the app has at least one paired accessory via AccessorySetupKit.

Discovery Descriptors

Read the whole SKILL.md on GitHub

More in Engineering