web-dev-qa-db-ja.com

UIApplicationEndBackgroundTaskErrorでアプリケーションがクラッシュする

Context:私のアプリは、SpriteKitを使用したゲームであるSwiftUIを使用して作成されています。

デバイスのホームボタンを押すと、アプリに「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.

ブレークポイントを作ってみましたが、理解できる有用な情報が得られません。ログはなく、デバッグナビゲーターが表示されるだけです。

Debug Navigator

問題の原因を調査しました。簡単な印刷ステートメントをいくつか追加しました。 print 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ベータ版が一致しないことが原因である可能性がありますか?
10
George_E

IOS 13.2ベータ3で修正されています。そこでテストできます。修正する必要があります。

2
JERC