I registered my own location manager to monitor and select multiple beacons:
[self.locationManager startMonitoringForRegion:region]; [self.locationManager startRangingBeaconsInRegion:region];
As I understand it, when one or more beacons are discovered, this delegate method is called:
- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
This delegate method is actually called when I turned on my beacon, but the array of beacons is empty. Is there a reason why my beacon is not listed in this array?
Here is a screenshot illustrating this situation:

Other notes:
- I used the MacBeacon to transmit the beacon. I will try to use a real beacon later, but MacBeacon works fine for me in iOS 7.
- I tried deferring the range until we
didEnterRegion: or didDetermineState: but it still leads to the same. - I requested a location permission from my location manager:
[self.locationManager requestWhenInUseAuthorization]; . - I have very similar code that works fine in the Xcode 5 / iOS 7 SDK. Is this the specific behavior of Xcode 6 / iOS 8?
- I added the
NSLocationWhenInUseUsageDescription key to my plist.
source share