在实时应用程序上发生崩溃。我无法获取崩溃日志。我可以在“组织者”->“崩溃”中看到下面的内容,点击它会把我带到下面提到的行。我如何调试或防止这种崩溃?
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
// Crash happens here
let tabBar:UITabBarController = self.window?.rootViewController as? UITabBarController
}发布于 2019-02-03 03:40:42
我不明白你为什么只检查rootViewController是UITabBarController。但是我认为,崩溃的发生是因为你没有调用completionHandler。尝试在方法的末尾添加:
completionHandler(.noData) // or with other parameters of UIBackgroundFetchResult type.来自苹果文档的:
处理完通知后,您必须调用处理程序参数中的块,否则您的应用程序将被终止。您的应用程序有最多30秒的挂钟时间来处理通知并调用指定的完成处理程序块。实际上,您应该在处理完通知后立即调用处理程序块。系统会跟踪应用程序后台下载的耗时、耗电量和数据成本。在处理远程通知时使用大量电力的应用程序可能并不总是提早唤醒以处理未来的通知。
查看苹果documentation
https://stackoverflow.com/questions/54496674
复制相似问题