I successfully discover a Peripheral and retrieve its local name:
[advertisementData objectForKey:CBAdvertisementDataLocalNameKey]
But if the Peripheral stops and restarts advertising with a different local name, the Client doesn't recognise the change. I guess
- (void)peripheralDidUpdateName:(CBPeripheral *)peripheral
only works if the two devices are paired. Is there a way to get an update without pairing?
You can use KVO on the name property which will work even when not connected, at least this is the case in OS X 10.10. I just use this to call the -peripheralDidUpdateName: method myself, and de-dupe calls by tracking the name string.
Apple's bug. Still present in iOS 6.1. Here is the trick how to reset CB cache:
Sorry.