我正在开发一个iOS应用程序,该应用程序通过Info.plist
启用Background Fetch大约一年。在启用了后台提取的情况下发布了多个版本,但几周前删除了需要进行后台提取的功能。 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上。
BTW已向此问题向Apple发送了源级协助请求,但他们还没有回复;但也许其他应用程序的开发人员之前遇到过这个问题。