I think that the best choice for your app is using Region Monitoring:
- You could register up to 20 regions;
- iOS will launch your app automatically if iPhone enters the observed region.
From Apple docs:
If a region crossing occurs while your iOS app is not running, the system automatically wakes it up (or relaunches it) in the background so that it can process the event. When relaunched, all of the regions you configured previously are made available in the monitoredRegions property of any location manager objects you create.
An app can register up to 20 regions at a time. In order to report region changes in a timely manner, the region monitoring service requires network connectivity.