Thanks for being a part of WWDC25!

How did we do? We’d love to know your thoughts on this year’s conference. Take the survey here

BLE advertisement and scan response

Dear Apple: If a BLE advertisement carries both a 16-bit service UUIDs and a 128-bit service UUIDs along with a local name, the local name will be placed in the scan response, then when the advertisement is turned off, both the 16-bit and 128-bit service UUIDs disappear while the local name persists. Subsequently, when transmitting a new advertisement that includes the 16-bit service UUIDs and local name, the resulting advertisement contains two local names. What methods can be used to avoid having two local names appearing simultaneously?Thanks

Every BLE peripheral has two names. One is the advertised name, and the other is the GAP name.

Once iOS connects to a peripheral, it will cache its GAP name, and from that point on, until the device falls off the cache, CoreBluetooth will report the GAP name to the didDiscoverPeripheral() callback. If there is also an advertised name, that will also be included in the parameters being passed to the function.

This is how things work and there is no way to avoid this outside of ignoring the data.

BLE advertisement and scan response
 
 
Q