iBeacon region monitoring only works intermittently in iOS 10

Originator:nick
Number:rdar://29509635 Date Originated:12/5/2016
Status:Open Resolved:
Product:iOS Product Version:10.1.1
Classification:Bug Reproducible:Sometimes
 
Area:
Bluetooth

Summary:
We use iBeacons to monitor when users are a beacon region (their car).  Until iOS 9 this worked very reliably, however with iOS 10 it is much less reliable and often the iPhone doesn't react to being in a beacon region no matter how close the beacon is to the phone. We are seeing multiple issues around this which include:

 - Failure to notice when the phone moves to a beacon region for up to several minutes or even indefinitely on occasion.

 - False exit events, where the app is told the phone has left the beacon region for several minutes even though it hasn't moved. 

 - False exits triggered by bluetooth phone calls made within a beacon region.

Steps to Reproduce:
Set app to listen for iBeacons in the background and enable push notifications for enter/exit events.  Background the app (or lock the phone) and test by entering and exiting beacon regions. Note: The app will be initially responsive but after some time, the problems raised here may become apparent. 

Expected Results:
Entering or leaving the beacon region should raise the relevant events within the app reliably and promptly (within a second or so). 

Actual Results:
Often the app receives no events from the OS about iBeacon region movements, or it receives "false negative" events when still inside the region. This happens with multiple different types of Apple Certified iBeacons (including the widely used kontakt.io beacon) on Apple approved broadcast interval of 100ms. 

Version:
10.1.1

Notes:
Sometimes (but not all of the time) the phone seems to sense the beacons as soon as the phone is unlocked (or in the case of an iPhone 7, when is raised to turn on the display).  Other times, the phone will not sense the beacons until the app is fully opened on screen or the phone is restarted.  We have verified the beacons are working properly using non iOS phones.  

Overall, the iBeacon behaviour in iOS 10 is extremely unreliable to the point where our app is not actually usable. We have had to cease development of iBeacon function for the time being. 

The problem doesn't seem to affect all phones to the same degree. Some iPhones work more reliably than others and we cannot see any pattern as to what causes the issue, other than it didn't become apparent until iOS 10.0

Configuration:
All hardware models are affected if they run iOS 10.

Comments

Seeing the same behaviour

we are seeing the same problems, I filed a radar too: https://openradar.appspot.com/radar?id=4969538768601088

By thomas.einwaller at Dec. 7, 2016, 7:44 a.m. (reply...)

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!