iOS фоновая загрузка продолжает запускать приложение
Я работаю над приложением для iOS, в котором включена функция Background Fetch через Info.plist
около года. Было выпущено несколько версий с включенной фоновой выборкой, но затем несколько недель назад была удалена функция, которая требовала фоновой выборки. UIBackgroundModes
ключ был полностью удален из Info.plist
и приложение было выпущено в App Store. Удивительно, но телеметрия показала, что приложение все еще периодически запускалось в фоновом режиме! Это фрагмент из исходного кода делегата приложения:
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
// NB: this callback should NEVER happen! But if it happens, we want to know about it.
... send telemetry log here ...
completionHandler(UIBackgroundFetchResultNoData);
}
Кто-нибудь испытывал что-нибудь подобное? Согласно документации, приложение не может быть запущено, если UIBackgroundModes
словарь не содержит правильных значений. В этом случае фоновый режим вообще не включается, но приложение периодически запускается в фоновом режиме для выполнения выборки...
Данные телеметрии указывают, что это происходит только на iOS 11, но это может быть совпадением, поскольку только небольшая часть установленной базы установлена на iOS 9/10.
Кстати, запрос помощи на уровне источника был отправлен в Apple с этой проблемой, но они еще не ответили; но, возможно, разработчики других приложений сталкивались с этой проблемой раньше.