Accessorysetupkit

iOS AccessorySetupKit-vælger, discovery descriptors og CoreBluetooth/Wi-Fi-overlevering

Af dpearson2699 · dpearson2699/swift-ios-skills

Testet · Virker ★ 8.8/10

Accessorysetupkit — iOS AccessorySetupKit-vælger, discovery descriptors og CoreBluetooth/Wi-Fi-overlevering

Hvad det gør

Reference-skill for Apples AccessorySetupKit (iOS 18+): krævede Info.plist-nøgler, ASDiscoveryDescriptor-matchende regler for BLE- og Wi-Fi-tilbehør, ASAccessorySession event-rækkefølge og overlevering til CoreBluetooth eller NEHotspotConfiguration efter parring. Udløses ved opbygning af et tilbehørs-parringsflow, skrivning af discovery descriptors, håndtering af accessory session events eller migrering af eksisterende CoreBluetooth-autoriserede enheder til systemvælgeren. Leverer en 636-linjers patterns-fil, der dækker brugerdefineret filtrering, fjernelseshåndtering, fejlgenoprettelse og et SwiftUI manager-mønster.

Testrapport

Installeret i en throwaway HOME (export HOME=$(mktemp -d)) via git clone + cp; frontmatter parset rent med kun name+description, og alle tre spot-tjekkede stier returnerede HTTP 200 (references/accessorysetupkit-patterns.md 18712 B, evals/evals.json 4308 B, README.md 26060 B). En grep efter curl|sh, base64 blobs, credential/token strings, absolutte /Users-stier og injektionsfraser på tværs af SKILL.md og patterns-filen returnerede nul hits. Trigger-fraser bedømt: SKULLE udløses - "Add a system accessory picker so users can pair our BLE thermostat without a Bluetooth permission prompt" (ja), "Which ASDiscoveryDescriptor fields match a Wi-Fi accessory by SSID prefix?" (ja), "We scan with CBCentralManager today; migrate our paired devices to the iOS 18 accessory setup flow" (ja); SKULLE IKKE udløses - "Write a CoreBluetooth GATT client that subscribes to heart-rate notifications on an already-paired peripheral" (korrekt sprunget over, post-parring GATT er uden for scope) og "Set up NEHotspotConfiguration to join a Wi-Fi network the user typed in manually" (korrekt sprunget over, intet tilbehør). Output-test: skrev baseline.swift.md derefter skill.swift.md for den samme opgave. Baselinjen satte descriptor.bluetoothNameSubstring = "ThermoX", men deklarerede kun NSAccessorySetupBluetoothServices i Info.plist - den dokumenterede crash-under-discovery-case; den tilføjede også en unødvendig NSBluetoothAlwaysUsageDescription, byggede CBCentralManager i init() og kaldte retrievePeripherals uden at vente på .poweredOn, fangede self stærkt i session.activate, force-unwrapped UIImage(named:)!, og håndterede kun .accessoryAdded/.accessoryRemoved bag en default: (så .activated genopretter aldrig tidligere parrede tilbehør, og ingen @unknown default). Skill-versionen tilføjede NSAccessorySetupBluetoothNames, droppede usage-description-nøglen, brugte [weak self], udskød forbindelsen fra .accessoryAdded til .pickerDidDismiss via et pendingAccessory-felt, gated retrievePeripherals på .poweredOn med et retry i centralManagerDidUpdateState, og dækkede .activated/.invalidated/@unknown default. Docs fratrukket et point: Jeg kunne ikke verificere de iOS 26.1-only API'er, den citerer (ASDiscoveredDisplayItem, updatePicker, finishPickerDiscovery) mod live Apple-docs, og ingen Swift her blev kompileret.

Testet: 2026-07-21 · Claude Code 2.x (agent harness)

Installation

git clone --depth 1 https://github.com/dpearson2699/swift-ios-skills.git /tmp/accessorysetupkit-src
mkdir -p ~/.claude/skills
cp -R /tmp/accessorysetupkit-src/skills/accessorysetupkit ~/.claude/skills/accessorysetupkit
# No deps, no API keys, no scripts: SKILL.md (14 KB) + references/accessorysetupkit-patterns.md (19 KB) + evals/evals.json
# Alternative (whole 86-skill repo, interactive picker): npx skills add dpearson2699/swift-ios-skills
# Alternative (Claude Code plugin marketplace): /plugin marketplace add dpearson2699/swift-ios-skills
# Usage: model-invoked. Just describe the accessory pairing task inside an iOS project.
# License is PolyForm Perimeter 1.0.0 (not OSI open source) - read LICENSE before redistributing

Kommandoer og eksempelprompter

  • /accessorysetupkitiOS AccessorySetupKit-vælger, discovery descriptors og CoreBluetooth/Wi-Fi-overlevering

Skills udløses af almindelige forespørgsler — ingen kommandoer at huske. Efter installationen aktiverer prompter som disse skillen (på engelsk):

  • Add a BLE accessory picker using AccessorySetupKit
  • Migrate from CoreBluetooth scanning to AccessorySetupKit
  • Define a discovery descriptor for my Wi-Fi device