iBeacon region monitoring unreliable - does not report Enter / Exit events to app

Originator:roger.mabillard
Number:rdar://27987713 Date Originated:08/24/2016
Status:Open Resolved:
Product:iOS Product Version:10
Classification: Reproducible:Always
 
Summary:
We have an app that monitors an iBeacon region to start looking for BLE peripherals onEntry and stop onExit. So far, it's been working reliably on iOS 9 with no issues at all. As soon as we installed the beta version of iOS 10.0, we started seeing inconsistencies and in most cases, the onExit event is never triggered or anytime much later. On iOS 9, we have been seeing a consistent delay of 20 to 30 seconds.

Steps to Reproduce:
1. Start monitoring for the global region. Track Entry and Exit events (region.notifyOnEntry | notifyOnExit).
2. Start monitoring for 1-3 sub-regions (using same major but diff. minor values). Only get notified for Entry events.
3. On iOS 9, the app will see the global region Entry, and any subsequent sub-region entries, then when all beacons have been turned off, after about 20 seconds, it will trigger the Exit event (didExitRegion:). On iOS 10, it might work the first time, but then it start being very unreliable and inconsistent.

Expected Results:
We are expecting the same results and the same inside / outside beacon region behavior on iOS 10 as it is on iOS 9. The API differences between iOS 9.3 and iOS 10.0 do not mention anything related to beacon region monitoring. Beacon region monitoring is being used by a ton of apps 

Actual Results:
The Exit event is not triggered in the app after physically leaving the region for more than 20-30 seconds.

Version:
iOS 10.0.1

Notes:
To reproduce, see the attached Xcode project that is from a sample app that can be found here: https://developer.apple.com/library/ios/samplecode/AirLocate/Introduction/Intro.html. The modifications are mainly in APLMonitoringViewController.m to add monitoring for sub-regions.

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!