CBCentralManager State Changes to PoweredOff After Using ASK for Accessory Setup

We are observing some unexpected behavior in our app when using ASK.

Our app is able to successfully discover and set up an accessory via ASK. After the setup completes, the connection to the accessory is managed through CBCentralManager and works as expected.

However, when we attempt to discover another accessory afterward, the picker is shown and indicates that accessory discovery is in progress. After approximately 10 seconds, the CBCentralManager delegate reports the Bluetooth state as poweredOff. Once this happens, the state never transitions back to poweredOn.

At this point, the only way to reconnect to the device or continue discovery is to relaunch the app.

We are wondering if anyone else has encountered similar behavior, or if this is a known or documented limitation/behavior when using ASK in combination with CBCentralManager.

This is indeed by design. AccessorySetupKit and original CoreBluetooth actions are mutually exclusive.

For BLE accessories that do not meet the requirements of AccessorySetupKit (do not advertise a company identifier or service UUID) but would still want to be able to be setup in your app, unfortunately, if the app is using AccessorySetupKit for new accessories, you would have to drop support for setting up older products.

Apps can one-time migrate all accessories using the migration flow described here - https://developer.apple.com/documentation/accessorysetupkit/discovering-and-configuring-accessories#Use-the-picker-when-migrating-to-AccessorySetupKit

Other than that, it is going to be either Accessory Setup Kit to discover accessories, or CoreBluetooth scanning. If ASK is involved CBCentralManager will only work with accessories discovered that way.

@MadBha @Divyajain Investigating this, we found out that what you are describing with the second accessory setup causing power state change, was a known issue with iOS 18, but has since been fixed in iOS 26.

If you are seeing this issue with iOS 26, then we will need some diagnostic logs to understand what might be happening.

To help our Bluetooth team to investigate this issue,
we'd greatly appreciate it if you could open a bug report, include crash logs and sample code or models that reproduce the issue, and post the FB number here once you do.

FIrst, to create a diagnostic log, please go to https://developer.apple.com/bug-reporting/profiles-and-logs/ and follow the instructions for Accessory Setup Kit for iOS< and Bluetooth for iOS to install those logging profiles on your device. Then reproduce the issue, and follow the instructions at the above link to create a sysdiagnose. And then attach that to the bug report as well.

Bug Reporting: How and Why? has tips on creating a successful bug report.

Important: For feedback related to a specific framework or API, select "Developer Technologies & SDKs" as your Topic, then select the specific technology and relevant OS. For feedback related to Xcode, App Store Connect, or other developer tools and resources, select "Developer Tools & Resources" as your Topic, then select the specific tool or resource.

Please post the Feedback ID here when done, and @mention me so I can route it correctly.


Argun Tekant /  WWDR Engineering / Core Technologies

CBCentralManager State Changes to PoweredOff After Using ASK for Accessory Setup
 
 
Q