Насколько я понимаю из документа, который вы разместили, если вы определите UIBackgroundModes
со значением location
в вашем info.plist, «система должна позволить приложению запускаться по мере необходимости в фоновом режиме».Итак, первый ответ - да, приложение может работать в фоновом режиме, и оно будет работать неограниченное время (до времени автономной работы).Это может быть легко проверено, на самом деле.
В любом случае, мне кажется, что этот вид функциональности "зарезервирован" для приложений, подобных GPS, и что Apple действительно обеспокоена его использованием:
Для приложений, которые требуют более точных данных о местоположении через регулярные промежутки времени, таких как навигационные приложения, вы должны объявить приложение как непрерывное фоновое приложение.Эта опция доступна для приложений, которые действительно нуждаются в ней, но это наименее желательный вариант, поскольку она значительно увеличивает энергопотребление.
, поэтому я понимаю, что Apple действительно тщательно проверяет все приложения, которые активируют этот режимчтобы оценить, действительно ли им нужно постоянное обновление или нет (и в этом случае, возможно, приложение не будет впущено в App Store).
Теперь, чтобы ответить на вторую часть вашегоВопрос, я думаю, что один из способов, которым Apple узнает, действительно ли ваше приложение соответствует правилам, - это использование CLLocationManager
.Риск состоит в том, что если вы используете другую службу, то при рассмотрении вашего приложения Apple может подумать, что вам просто нужно фоновое время без необходимости постоянно обновлять местоположение.
Но это всего лишь предположение ...