I submitted an app which tracks the user's location (and sends it to the server) at some fixed intervals chosen by the user (5 min, 10 min, 30 min, 1 h). The app should work in background, too (sending the requests) and I have declared it as UIBackgroundMode = location
. I am able to send the requests while in background at those fixed intervals. Apple rejected it, suggesting the following:
We found that your app uses a background mode but does not include functionality that requires that mode to run persistently. This behavior is not in compliance with the App Store Review Guidelines.
We noticed your app declares support for location in the UIBackgroundModes key in your Info.plist but does not include features that require persistent location.
It would be appropriate to add features that require persistent use of real-time location updates while the app is in the background or remove the "location" setting from the UIBackgroundModes key. If your application does not require persistent, real-time location updates, we recommend using the significant-change location service or the region monitoring location service.
For more information on these options, please see the "Starting the Significant-Change Location Service" and "Monitoring Shape-Based Regions" sections in the Location Awareness Programming Guide.
If you choose to add features that use the Location Background Mode, please include the following battery use disclaimer in your Application Description:
"Continued use of GPS running in the background can dramatically decrease battery life."
If I change significant location change and remove UIBackgroundMode
key from Info.plist
, the app will be killed in background and will wake up only if the event occurs. But I must send the request to server every 5 minutes for example and my app is killed in the background (let's say the user does not move and the event is not trigger = no
requests are sent to server).
To resolve you have to add the disclaimer in the App description in Itunes Connect "Continued use of GPS running in the background can dramatically decrease battery life."