Использование фоновых режимов в приложениях
Я разрабатываю приложение для iOS, которое обновляет данные на сервер каждую минуту. Я хочу работать с этим обновлением данных, даже когда приложение переходит в фоновый режим. Я включил "Фоновый режим" в "Возможности" и не проверял никаких фоновых опций. Также используется код ниже
UIApplication* app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
NSLog(@"beginBackgroundTaskWithExpirationHandler");
//[app endBackgroundTask:bgTask];
//bgTask = UIBackgroundTaskInvalid;
}];
Бес: Я прокомментировал [app endBackgroundTask:bgTask]
а также bgTask = UIBackgroundTaskInvalid
,
Теперь мое приложение хорошо работает в фоновом режиме.
Мой вопрос: есть ли шанс отклонить мое приложение из App Store из-за этого?
1 ответ
Когда вы используете эту фоновую задачу, она выполняется только в течение нескольких минут. (Протестируйте это на устройстве, не подключенном через XCode. Если вы тестируете это на симуляторе, вы можете почувствовать, что приложения продолжают работать в фоновом режиме, а в реальном мире - нет.)
Apple разрешает текущую фоновую работу только для очень узкого набора приложений (навигация, музыка, VOIP и т. Д.). Для фоновых сетевых запросов есть фоновые NSURLSession
сеансы (для продолжения длительных загрузок / выгрузок, чтобы не повторять новые запросы). Он также имеет фоновую выборку для произвольно инициируемых запросов по усмотрению ОС, а не по заранее заданному расписанию и, конечно, не каждую минуту.
В итоге Apple не допустит приложений, которые каким-то образом обходят эти узко определенные сценарии. Кроме того, вы можете убить батарею пользователя и использовать его тарифный план, если вы постоянно инициировали новые запросы.