CLBeaconRegion no ha llamado didEnterRegion desde la finalización

He estado leyendo algo sobre CLBeaconRegion y he configurado algunos iBeacons con éxito y he activado las actualizaciones de location, incluso mientras la aplicación está en segundo plano.

Sin embargo, de lo que he leído y transferido desde CLRegion , entiendo que debería ser posible acceder a locationManager:didEnterRegion: vez que la aplicación finaliza.

Configuré mi CLBeaconRegion así:

 beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:[[NSUUID alloc] initWithUUIDString:SERVICE_UUID] major:0 minor:0 identifier:BEACON_ID]; [beaconRegion setNotifyOnEntry:YES]; [beaconRegion setNotifyOnExit:YES]; [beaconRegion setNotifyEntryStateOnDisplay:YES]; 

Pero no puedo desencadenar el delegado de CLLocationManager desde la finalización. Salí de la región (confirmado por una notificación), viajé más lejos de la baliza, esperé 30 segundos y luego volví a la baliza, pero no desencadena el delegado mientras estaba terminado (funciona muy bien cuando está en segundo plano y en primer plano )

¿Debería esto funcionar desde la finalización? ¿Me estoy perdiendo de algo? Cualquier ayuda sería genial.

Creo que cuando estás en segundo plano o no ejecutas, llama a locationManager: didDetermineState: forRegion: en lugar de locationManager: didEnterRegion: y solo si has configurado notifyEntryStateOnDisplay en TRUE.

Este es el comportamiento esperado en iOS 7. Sin embargo, este comportamiento se ha modificado en iOS 7.1. iOS 7.1 vuelve a delegar las llamadas al comportamiento anterior a iOS 7.

He documentado este comportamiento en una publicación de blog mía.

http://www.simplymadeapps.com/blog/2014/03/7-1-brings-back-geofence-behavior/

EDITAR: el siguiente ya no es verdadero a partir de 7.1. Aún puedes recibir notifications incluso cuando la aplicación se haya cerrado.

El comportamiento de las aplicaciones que se eliminan en el conmutador de aplicaciones ahora tiene el efecto que está describiendo en iOS 7.

Los usuarios que eliminan su aplicación del conmutador han tomado la decisión de no permitir que su aplicación se ejecute en segundo plano. Por lo tanto, la supervisión de la región no volverá a abrir su aplicación.

Consulte la session "Novedades con multitarea" de WWDC 2013 para get más información.

Sí,

  Same behaviour is being noticed .Sometimes even while calling setNotifyEntryStateOnDisplay, didEnterRegion not called even when in foreground.