1

我正在开发一个 iOS 应用程序,该应用程序通过 启用了Background FetchInfo.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 发送了有关此问题的源级协助请求,但他们尚未回复;但也许其他应用程序的开发者以前也遇到过这个问题。

4

0 回答 0