Accessorysetupkit

iOS AccessorySetupKit velger, oppdagelsesbeskrivelser, og CoreBluetooth/Wi-Fi overlevering

av dpearson2699 · dpearson2699/swift-ios-skills

Bestått ★ 8.8/10

Accessorysetupkit — iOS AccessorySetupKit velger, oppdagelsesbeskrivelser, og CoreBluetooth/Wi-Fi overlevering

Hva den gjør

Referanseferdighet for Apples AccessorySetupKit (iOS 18+): nødvendige Info.plist-nøkler, ASDiscoveryDescriptor-matchende regler for BLE- og Wi-Fi-tilbehør, ASAccessorySession hendelsesrekkefølge, og overlevering til CoreBluetooth eller NEHotspotConfiguration etter paring. Utløses ved bygging av en tilbehørsparing-flyt, skriving av oppdagelsesbeskrivelser, håndtering av tilbehørssesjonshendelser, eller migrering av eksisterende CoreBluetooth-autoriserte enheter til systemvelgeren. Leverer en 636-linjers mønsterfil som dekker tilpasset filtrering, fjerning, feilgjenoppretting og et SwiftUI manager-mønster.

Testrapport

Installert i en midlertidig HOME (export HOME=$(mktemp -d)) via git clone + cp; frontmatter parset rent med kun name+description, og alle tre spot-sjekkede stier returnerte HTTP 200 (references/accessorysetupkit-patterns.md 18712 B, evals/evals.json 4308 B, README.md 26060 B). En grep etter curl|sh, base64-blobs, credential/token-strenger, absolutte /Users-stier og injeksjonsfraser på tvers av SKILL.md og mønsterfilen returnerte null treff. Utløserfraser vurdert: SKAL utlø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); SKAL IKKE utløses - "Write a CoreBluetooth GATT client that subscribes to heart-rate notifications on an already-paired peripheral" (korrekt hoppet over, post-paring GATT er utenfor omfang) og "Set up NEHotspotConfiguration to join a a Wi-Fi network the user typed in manually" (korrekt hoppet over, ingen tilbehør). Utdata-test: skrev baseline.swift.md deretter skill.swift.md for samme oppgave. Baseline satte descriptor.bluetoothNameSubstring = "ThermoX" men deklarerte kun NSAccessorySetupBluetoothServices i Info.plist - det dokumenterte krasj-under-oppdagelse-tilfellet; den la også til en unødvendig NSBluetoothAlwaysUsageDescription, bygde CBCentralManager i init() og kalte retrievePeripherals uten å vente på .poweredOn, fanget self sterkt i session.activate, force-unwrapped UIImage(named:)!, og håndterte kun .accessoryAdded/.accessoryRemoved bak en default: (så .activated kobler aldri til tidligere parede tilbehør på nytt, og ingen @unknown default). Ferdighetsversjonen la til NSAccessorySetupBluetoothNames, droppet usage-description-nøkkelen, brukte [weak self], utsatte tilkoblingen fra .accessoryAdded til .pickerDidDismiss via et pendingAccessory-felt, gated retrievePeripherals på .poweredOn med et nytt forsøk i centralManagerDidUpdateState, og dekket .activated/.invalidated/@unknown default. Dokumentasjon redusert ett poeng: Jeg kunne ikke verifisere de iOS 26.1-kun APIene den siterer (ASDiscoveredDisplayItem, updatePicker, finishPickerDiscovery) mot live Apple-dokumenter, og ingen Swift her ble kompilert.

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

Installer

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 velger, oppdagelsesbeskrivelser, og CoreBluetooth/Wi-Fi overlevering

Skills utløses av vanlige forespørsler — ingen kommandoer å huske. Etter installasjonen 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