Hi, I currently have an app that connect to an arduno via CoreBluetooth. However, the app no longer discovers the arduino when the operating system was upgraded to iOS 18.3.1, however on iOS version 17.6.1 the ardiuno was discoverable I was able to test this theory on two different phones each with different iOS versions. I see that it is failing to find the peripheral at the scan however the logs indicate that the central state is powered on. Why are my peripherals no longer being discovered with this update? and what is the solution?
CoreBluetooth Scan not working when OS upgraded to 18.3.1
Ive noticed that on ios 17, the peripheral advertisement looks like such:
["kCBAdvDataRxPrimaryPHY": 1, "kCBAdvDataTimestamp": 763306972.0486569, "kCBAdvDataServiceUUIDs": <__NSArrayM 0x300704930>( 0000FFF0-0000-1000-8000-00805F9B34FB ) , "kCBAdvDataRxSecondaryPHY": 0, "kCBAdvDataIsConnectable": 1] which correctly detects the CBUUID of the BLE attachment.
However on ios 18, the following advertisement broadcast for the same peripheral is seen as such: ["kCBAdvDataRxPrimaryPHY": 1, "kCBAdvDataLocalName": ArduinoBLE, "kCBAdvDataTimestamp": 763307180.305377, "kCBAdvDataIsConnectable": 0, "kCBAdvDataRxSecondaryPHY": 0] with no service UUID detected. This only occurs on systems with iOS 18, specifically, 18.3.1
If this is happening when the app is not in the foreground, or the device screen is off, it is explainable. In those situations iOS may go into a passive scan mode, where the SCAN_RSP packet is not requested. If your accessory is advertising the service UUID in the SCAN_RSP packet, then it is possible that the data for it is missing.
If it is happening even if the app is in the foreground then please file a bug report for the Bluetooth team to investigate this issue.
(https://developer.apple.com/forums/thread/712889) has tips on creating a successful bug report.
We would also need diagnostic logs which will show the packets being advertised.
Please go to https://developer.apple.com/bug-reporting/profiles-and-logs/ and follow the instructions for Bluetooth for iOS to install a logging profile on your device.
Then reproduce the issue, and follow the instructions at the above link to create a sysdiagnose. And attach that to the bug report as well.
Argun Tekant / DTS Engineer / Core Technologies
Thanks I will submit the bug. Yes it is occuring in the foreground.