I set up my CLLocationManager as follows
self.locationManager.delegate = self;
if ([CLLocationManager isMonitoringAvailableForClass:[CLBeaconRegion class]]) {
[self.locationManager startMonitoringForRegion:self.region];
}
else {
NSLog(@"CLBeaconRegion monitoring not available");
}
if ([CLLocationManager isRangingAvailable]) {
[self.locationManager startRangingBeaconsInRegion:self.region];
}
else {
NSLog(@"CLBeaconRegion ranging not available");
}
locationManager:didEnterRegion: and locationManager:didRangeBeacons:inRegion: are never called. I am using iOS 7.1 and have the issue on both an iPad and and iPhone. I am using Estimote beacons.
Restarting the iOS device completely resolved the issue. Not sure if this is a bug in iOS or with the Estimote beacons. But it seems restarting is required. That immediately resolved the issues and I have had no issues since.