Read the background location documentation on Apple's website here.
One option is to declare your application as constantly updating location.
An application may declare itself as the need for a constant background Update location. An application that needs regular location updates, both in the foreground and background, should add the UIBackgroundModes key to its Info.plist and set the value of this key to an array containing the location string. This parameter is intended for applications that provide specific services, such as navigation services related to the preservation of the user informed about his whereabouts at all times. The presence of a key in the application file Info.plist tells the system that it should allow the application to run as needed in the background.
This will have the desired result in that your application can track where the user is going, however you need to know that this is the most energy-intensive option, and it is usually considered the least desirable. However, if you are trying to keep track of someone coming, this is what you need to do.
HOWEVER . You say you want to receive updates every 10 minutes or so. In this case, you should NOT use this strategy and use significant location updates instead. These WILL reload your application if it is closed, but as you say, they are not very accurate. The trick to improving them is to start a normal location update as soon as the application receives a significant location update, and you should get enough time to improve your location (by sending you a few more updates) before the application is paused.
This will not be ideal, but it will be better than just using significant (i.e., mesh) changes.
Roger source share