Apple has rejected my application with the response below...
I already added the entry for "NSLocationAlwaysUsageDescription" and "NSLocationWhenInUseUsageDescription" in the info.plist file, but why did Apple reject it?
Your app uses background location services but does not clarify the purpose of its use in the location modal alert as required in the iOS Human Interface Guidelines.
We've attached screenshot(s) for your reference.
Next Steps
Please reconfigure the UIAlertControllerStyleAlert in your code and specify the intended purpose of using background location in its message field. Resources
For additional information and instructions on configuring and presenting an alert, see the Accessing User Data section of the iOS Human Interface Guidelines and the UIKit Framework Reference.
NSLocationAlwaysUsageDescription is battery intensive. If not managed properly by the App, it can result in a bad user experience not only within the App, but also a bad user experience about using the iOS device in general.
Hence, Apple wants to know if you really need the location of the user even when the user is in the background.
Even our App received a rejection last week for the same reason.
We didn't even need to submit a new binary. All we did was explained to the reviewer why we were using the location background mode which we had listed in our plist. We did this by uploading a video in which we explained the purpose of the location background mode. And then provided a link of this video in the resolution centre in iTunes connect. The reviewer had a look at it and later approved our app.
So you have to do a similar thing. If you need the location services background mode. Just explain it's intended purpose to the reviewer in the resolution centre. Else, just upload a new binary with the location services background mode removed from the plist.
Hope it helps.