Я отправил приложение, которое отслеживает местоположение пользователя (и отправляет его на сервер) с некоторыми фиксированными интервалами, выбранными пользователем (5 минут, 10 минут, 30 минут, 1 час). Приложение также должно работать в фоновом режиме (отправляя запросы), и я объявил его как UIBackgroundMode = location
. Я могу отправлять запросы в фоновом режиме с фиксированными интервалами. Apple отвергла его, предложив следующее:
Мы обнаружили, что ваше приложение использует фоновый режим, но не включает функции, требующие постоянной работы этого режима. Такое поведение не соответствует Руководству по проверке App Store.
Мы заметили, что ваше приложение декларирует поддержку местоположения в ключе UIBackgroundModes в вашем Info.plist, но не включает функции, требующие постоянного местоположения.
Было бы уместно добавить функции, которые требуют постоянного использования обновлений местоположения в реальном времени, когда приложение находится в фоновом режиме, или удалить параметр «местоположение» из ключа UIBackgroundModes. Если вашему приложению не требуются постоянные обновления местоположения в режиме реального времени, мы рекомендуем использовать службу определения местоположения со значительными изменениями или службу определения местоположения для мониторинга региона.
Дополнительные сведения об этих параметрах см. в разделах «Запуск службы определения местоположения со значительными изменениями» и «Мониторинг областей на основе фигур» в Руководстве по программированию определения местоположения.
Если вы решите добавить функции, использующие фоновый режим определения местоположения, включите в описание приложения следующее заявление об отказе от использования батареи:
«Продолжительное использование GPS в фоновом режиме может значительно сократить срок службы батареи».
Если я изменю существенное изменение местоположения и удалю ключ UIBackgroundMode
из Info.plist
, приложение будет убито в фоновом режиме и проснется, только если произойдет событие. Но я должен отправлять запрос на сервер, например, каждые 5 минут, и мое приложение убивается в фоновом режиме (допустим, пользователь не двигается, а событие не trigger = no
запросы отправляются на сервер).