Apple Core Bluetooth framework for BLE and Bluetooth Classic. Use for central/peripheral workflows, scanning, connecting, advertising, GATT services/characteristics, read/write/notify, L2CAP, background processing or state restoration, and error handling across Apple platforms.
Installation
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Apple Core Bluetooth framework for BLE and Bluetooth Classic. Use for central/peripheral workflows, scanning, connecting, advertising, GATT services/characteristics, read/write/notify, L2CAP, background processing or state restoration, and error handling across Apple platforms.
Core Bluetooth
What to open
Use corebluetooth/AboutCoreBluetooth.md and corebluetooth/CoreBluetoothOverview.md for concepts and role orientation.
Use corebluetooth/PerformingCommonCentralRoleTasks.md for step-by-step central workflows.
Use corebluetooth/PerformingCommonPeripheralRoleTasks.md for step-by-step peripheral workflows.
Use corebluetooth/BestPracticesforInteractingwithaRemotePeripheralDevice.md and corebluetooth/BestPracticesforSettingUpYourLocalDeviceasaPeripheral.md for pitfalls and best practices.
Use corebluetooth/CoreBluetoothBackgroundProcessingforiOSApps.md for background modes and lifecycle constraints.
Use corebluetooth/BluetoothStateRestorationAppReaunchRules.md for state restoration app relaunch rules.
Use corebluetooth/corebluetooth.md for API quick maps and symbol lookup.
Workflow
Identify whether the app acts as a central, a peripheral, or both.
Wait for the manager state to be poweredOn before issuing BLE operations.
Follow the role checklist to keep discovery and connection order correct.
Open the role task guide and best practices first; use the API reference for exact signatures.
Central checklist
Create a CBCentralManager with a delegate and queue.
Handle centralManagerDidUpdateState(_:) and gate scanning on .poweredOn.
Scan with scanForPeripherals(withServices:options:) and stop when the target is found.
Connect, set the CBPeripheral delegate, and discover services and characteristics.
Read, write, or subscribe to characteristic notifications as needed.
Peripheral checklist
Create a CBPeripheralManager with a delegate and queue.
Wait for the state to become .poweredOn.
Define services and characteristics, then add them to the manager.
Start advertising with service UUIDs and optional local name.
Respond to read and write requests; publish updates to subscribed centrals.
Reminders
Retain discovered CBPeripheral instances to keep them alive.
Use notifications for streaming data; use write-without-response only when canSendWriteWithoutResponse is true.
Use L2CAP only for use cases that do not fit GATT characteristics.