【问题标题】:Application crashing with UIApplicationEndBackgroundTaskError应用程序因 UIApplicationEndBackgroundTaskError 而崩溃
【发布时间】:2019-12-26 03:04:16
【问题描述】:

上下文:我的应用是使用 SwiftUI 制作的,这是一款使用 SpriteKit 的游戏。

在我的设备上按下主页按钮时,我的应用遇到了一个名为“UIApplicationEndBackgroundTaskError”的错误。日志如下所示:

Can't end BackgroundTask: no background task exists with identifier 1 (0x1), or it may have already been ended. Break in UIApplicationEndBackgroundTaskError() to debug.

我尝试过设置断点,但它没有给我任何我理解的有用信息。没有日志,它只是显示调试导航器。

我试图调查问题的来源。我只是添加了一些简单的打印语句。打印Update 快速重复几次,然后应用程序被断点停止:

struct SceneView: UIViewRepresentable {

    let bounds: CGRect


    // Conformance to UIViewRepresentable
    func makeUIView(context: Context) -> SKView {
        SKView(frame: bounds)
    }
    func updateUIView(_ uiView: SKView, context: Context) {
        print("Update")

        let scene = Scene(size: bounds.size)
        uiView.ignoresSiblingOrder = true
        uiView.showsFPS = true
        uiView.showsDrawCount = true
        uiView.showsNodeCount = true
        uiView.presentScene(scene)
    }
}

  • 是什么导致了这个问题,我该如何解决这个问题?
  • 这可能是因为 SwiftUI 还是我的 Xcode 测试版和 iPhone 测试版不匹配?

【问题讨论】:

  • 搜索您的代码以查看您呼叫的位置endBackgroundTask
  • @Paulw11 我不会在我的项目中的任何地方调用它
  • 你是否在 UIApplicationEndBackgroundTaskError 上设置了符号断点?如果是这样,请关闭该断点。
  • 在 iOS13 上进入后台运行我的应用程序时收到相同的消息。以前 iOS 版本的相同代码不会输出此错误。认为这排除了。 SwiftUI 是原因。
  • 同意 SwiftUI 不是直接原因。我有一个常规的 Swift 项目。使用 Xcode 11 GM,我在模拟器中返回主页时遇到了崩溃。在 Xcode 11 GM Seed 2 中,我不再遇到崩溃,但仍然在控制台中收到警告。

标签: ios swift sprite-kit appdelegate swiftui


【解决方案1】:

在 iOS 13.2 beta 3 上已修复,您可以在那里测试,应该已修复。

【讨论】:

  • 可以分享源码吗?
  • 在 13.2 中未针对我的应用程序的实时版本修复。
  • @BilalSiddiqui 对不起,我没有看到你的评论,现在 13.2 不再是 beta 版本,你可以在最新的 iOS 版本中测试它。 (iOS 13.2)
  • @SAHM 很奇怪,对我来说是固定的
  • 13.3.1.上的同样问题
猜你喜欢
  • 2023-03-14
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-16
  • 2017-10-16
相关资源
最近更新 更多