Hi there,
we're developing a Bluetooth LE device and are using the AccessorySetupKit to connect the device to our iOS application. We are a registered member of the Bluetooth SIG and are advertising our company id over BLE. Setting up the device works on most iPhones we've tested with, but not all. Here's an example of some of the devices we've tested:
- iPhone 12 mini: Not working, tried both iOS 18.1.1 and 18.1.1
- iPhone 13 mini: Working, iOS 18.1.1
- iPhone 15: Not working, iOS 18.1.1
- iPhone 15: Works now, didn't work a few weeks ago
- iPhone 15 Pro: Works
- iPhone 16 Pro: Works
Looking through the logs of the iPhone 12 mini while scanning I see some things that might be related in the logs (I've removed potentially identifying data). It seems to me that it's detecting the device, but not showing it in the UI:
error 11:43:54.792877+0100 bluetoothd canSessionScanForMFGRData <our company ID> <private> there:1
default 11:43:54.795685+0100 deviceaccessd ### appBundleHasASKEnabled <our app bundle> supports Bluetooth
default 11:43:54.795730+0100 deviceaccessd ### _reportDiscoveredBTDevice DADevice: ID <removed ID>, name '<ASPickerDisplayItem.name>', btID <removed ID>, flags AccessorySetup, type Hi-Fi Speaker <CBPeripheral: 0x4b8164540, identifier = <removed ID>, name = (null), mtu = 23, state = disconnected> has no bluetooth name
We get no callbacks while the picker UI is displayed. Opening the picker on another device at the same time immediately shows our accessory.
This seems like a bug in the AccessorySetupKit too me, but I'm not sure. Could we be doing something wrong?