【发布时间】: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