If the app is running and the CLLocationManagerDelegate class is the foreground (i.e. visible) then the didEnterRegions triggers and I get both the NSLog as well as the Aler
i think you need go to your app.plist
and add Required Background modes : add itme App registers for location update
and 1 . if you app is in background , you still see the arrow on top
and 2 , if the app killed , you can still see a hollow arrow on the top , ios will monitor the region for you , but limited to 20 regions