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