iBeacon region monitoring delegate callbacks not occurring
| Originator: | dhelms | ||
| Number: | rdar://32659047 | Date Originated: | June 8 2017 |
| Status: | Open | Resolved: | |
| Product: | iOS | Product Version: | 10.3.2(14F89) |
| Classification: | Bug | Reproducible: | Sometimes |
Area:
Core Location
Summary:
Application gets gets into a state where CLBeaconRegion monitoring callbacks do not occur.
The iOS app is monitoring for beacons, but not ranging for beacons. The behavior is affected by the application itself or other applications on the device initiating ranging for beacons. The behavior is affected by the user's interaction with the lock screen.
Steps to Reproduce:
This is a problem that is difficult to reproduce as the underlying CoreLocation and/or CoreBluetooth services get into a degraded state that affects the applications behavior. I have observed the Bluetooth status bar indicator go into a grey state prior to recognizing that the application exhibits the degraded CoreLocation beacon behavior.
Expected Results:
Immediate didEnter and didDetermineState callbacks upon coming within proximity of a valid beacon
Callbacks to didExit and didDetermineState approximately 30s after exiting the proximity of a valid beacon
Observed Results:
Application gets gets into a state where CLBeaconRegion monitoring callbacks do not occur.
The iOS app is monitoring for beacons, but not ranging for beacons.
1. When a beacon is within valid proximity delegate callbacks do not occur
1. didEnter
2. didExit
3. didDetermineState
2. The behavior alters if another app on the device starts ranging.
1. If the iOS device is in proximity to a beacon
1. didEnter callback occurs immediately
2. didDetermineState callback with a state of CLRegionStateInside will be received
2. If the iOS device is not in proximity to a beacon
1. didExit callback occurs at 5s
2. didDetermineState callback with a state of CLRegionStateOutside occurs at 5s
3. The behavior can also be altered in the following conditions:
1. If the iOS device is in proximity to a beacon
2. If the beacon region state is CLRegionStateOutside
3. If the iOS device is locked with a non-illuminated screen
Upon waking up the device...
1. didEnter callback occurs immediately
2. didDetermineState callback with a state of CLRegionStateInside will be received
4. The behavior returns to normal for a finite amount of time if Bluetooth is disabled and re-enabled
Version:
10.3.2(14F89)
Notes:
Configuration:
This has been observed by our customers and multiple colleagues across the range of available iOS devices. In my personal testing I have observed this on an iPhone 6s Model MKT32LL/A
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!