Accessorysetupkit

iOS AccessorySetupKit picker, discovery descriptors a předání CoreBluetooth/Wi-Fi

od dpearson2699 · dpearson2699/swift-ios-skills

Otestováno · Funguje ★ 8.8/10

Accessorysetupkit — iOS AccessorySetupKit picker, discovery descriptors a předání CoreBluetooth/Wi-Fi

Co umí

Referenční dovednost pro Apple AccessorySetupKit (iOS 18+): požadované klíče Info.plist, pravidla shody ASDiscoveryDescriptor pro BLE a Wi-Fi příslušenství, řazení událostí ASAccessorySession a předání na CoreBluetooth nebo NEHotspotConfiguration po spárování. Spouští se při vytváření toku párování příslušenství, psaní deskriptorů objevu, zpracování událostí relace příslušenství nebo migraci stávajících zařízení autorizovaných CoreBluetooth na systémový výběr. Dodává 636řádkový soubor vzorů pokrývající vlastní filtrování, zpracování odstranění, obnovu po chybě a vzor správce SwiftUI.

Testovací report

Nainstalováno do dočasného HOME (export HOME=$(mktemp -d)) pomocí git clone + cp; frontmatter parsován čistě pouze s name+description a všechny tři namátkově zkontrolované cesty vrátily HTTP 200 (references/accessorysetupkit-patterns.md 18712 B, evals/evals.json 4308 B, README.md 26060 B). Grep na curl|sh, base64 bloby, řetězce pověření/tokenů, absolutní cesty /Users a injekční fráze napříč SKILL.md a souborem vzorů vrátil nula zásahů. Spouštěcí fráze posouzeny: MĚLO BY se spustit - „Přidejte systémový výběr příslušenství, aby uživatelé mohli spárovat náš BLE termostat bez výzvy k povolení Bluetooth“ (ano), „Která pole ASDiscoveryDescriptor odpovídají Wi-Fi příslušenství podle předpony SSID?“ (ano), „Dnes skenujeme s CBCentralManager; migrujte naše spárovaná zařízení na tok nastavení příslušenství iOS 18“ (ano); NEMĚLO BY se spustit - „Napište CoreBluetooth GATT klienta, který se přihlásí k odběru oznámení srdečního tepu na již spárovaném periferii“ (správně přeskočeno, GATT po párování je mimo rozsah) a „Nastavte NEHotspotConfiguration pro připojení k Wi-Fi síti, kterou uživatel zadal ručně“ (správně přeskočeno, žádné příslušenství). Test výstupu: napsal jsem baseline.swift.md a poté skill.swift.md pro stejný úkol. Základní test nastavil descriptor.bluetoothNameSubstring = „ThermoX“, ale deklaroval pouze NSAccessorySetupBluetoothServices v Info.plist - dokumentovaný případ havárie během objevu; také přidal zbytečný NSBluetoothAlwaysUsageDescription, sestavil CBCentralManager v init() a volal retrievePeripherals bez čekání na .poweredOn, silně zachytil self v session.activate, vynuceně rozbalil UIImage(named:)! a zpracoval pouze .accessoryAdded/.accessoryRemoved za default: (takže .activated nikdy znovu nepřipojí dříve spárované příslušenství a žádný @unknown default). Verze dovednosti přidala NSAccessorySetupBluetoothNames, vynechala klíč usage-description, použila [weak self], odložila připojení z .accessoryAdded na .pickerDidDismiss přes pole pendingAccessory, omezila retrievePeripherals na .poweredOn s opakováním v centralManagerDidUpdateState a pokryla .activated/.invalidated/@unknown default. Dokumentace snížena o jeden bod: nemohl jsem ověřit API pouze pro iOS 26.1, která cituje (ASDiscoveredDisplayItem, updatePicker, finishPickerDiscovery) proti živé dokumentaci Apple a žádný Swift zde nebyl kompilován.

Testováno: 2026-07-21 · Claude Code 2.x (agent harness)

Instalace

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

Příkazy a ukázkové prompty

  • /accessorysetupkitiOS AccessorySetupKit picker, discovery descriptors a předání CoreBluetooth/Wi-Fi

Skilly se spouštějí běžnými požadavky — žádné příkazy k zapamatování. Po instalaci ho aktivují prompty jako tyto (anglicky):

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