PLATFORM AND VERSION Model - iPhone 13 Pro Max (Potentially for other models also) OS - iOS 26
DESCRIPTION OF PROBLEM : BLE discoverability (advertising) is not working on iOS 26 but works reliably on older iOS versions.
Details: Our app acts as a Bluetooth peripheral. When advertising, the app only adds CBAdvertisementDataLocalNameKey in advertisement data. Format of local name - "NTDI:103202400001"
We have observed that in iOS 26, the local name is getting truncated. This breaks the parsing logic in our IOT device central code, which expects the full local name to be present. We have also observed that some extra data is getting added to the advertisement data by the OS.
As of now, updating the IOT device logic for parsing is not possible.
STEPS TO REPRODUCE
- Create an instance of CBPeripheralManager.
- Start advertising with a local name with the format "NTDI:103202400001"
- Capture the advertisement data using a Bluetooth sniffer tool.
- Observe that the local name is getting truncated
Legacy ADV_IND as received by IoT device (truncated name):
HCI Event: LE Meta Event (0x3e) plen 27 LE Advertising Report (0x02) Event type: ADV_IND (0x00) Data length: 15 Flags: 0x1a TX power: 12 dBm 12 09 4e 54 44 49 3a 31 30 ..NTDI:10 RSSI: -47 dBm
Only partial Local Name (“NTDI:10…”) is present in this primary PDU.
Is it possible to avoid the extra data introduced by iOS or avoid local name truncation?