催化剂“ SwiftUI.AccessibilityNode”不是已知的可序列化元素

Luk*_*ner 7 accessibility swiftui mac-catalyst

我使用Xcode 11.1创建了一个新的iOS单页应用程序(包括SwiftUI),并启用了Mac Catalyst。在Mac(当然是macOS 10.15)上运行新的Project之后,在窗口上点击一次后,出现以下错误。

2019-10-18 12:59:48.479186+0200 test[3130:122148] Metal API Validation Enabled
2019-10-18 12:59:50.960734+0200 test[3130:122148] [AXRuntimeCommon] Unknown client: test
2019-10-18 12:59:50.962261+0200 test[3130:122148] [AXRuntimeCommon] This class 'SwiftUI.AccessibilityNode' is not a known serializable element and returning it as an accessibility element may lead to crashes
2019-10-18 12:59:51.313 test[3130:122148] **************_____________**************AXError: AVPlayerView is not a kind of NSView
1   AccessibilityBundles                0x00007fff42ee3b69 _AXBValidationCheckIsKindOfClass + 201
2019-10-18 12:59:51.386 test[3130:122148] **************_____________**************AXError: MKStarRatingView is not a kind of NSView
1   AccessibilityBundles                0x00007fff42ee3b69 _AXBValidationCheckIsKindOfClass + 201
Run Code Online (Sandbox Code Playgroud)

注意:我还删除了沙盒功能,否则我收到有关无法编写的错误 ApplicationAccessibilityEnabled

有人知道如何解决吗?

ggr*_*uen 20

据我所知,没有办法摆脱那个错误,也没有必要;这是 SwiftUI 固有的东西。它发生在 iOS、iPadOS 和(因此)Mac Catalyst 上,即使在一个全新的项目中也是如此。除了让我们开发人员担心之外,它似乎也没有任何伤害。

在过去的六个月里,我一直在 SwiftUI 中全职工作,开发一个现在在 iOS、iPadOS 和 MacOS (Catalyst) 上运行的生产应用程序。在This class 'SwiftUI.AccessibilityNode' is not a known serializable element一直的错误从一开始。在六个月的 SwiftUI 开发中,我没有发现它是任何问题的根源。

如果您打开 Xcode,创建一个新的单视图 iOS 项目,并在不做任何更改的情况下运行它,它将显示“Hello, World!”。点击“你好,世界!” 并且您的控制台将记录[AXRuntimeCommon] This class 'SwiftUI.AccessibilityNode' is not a known serializable element and returning it as an accessibility element may lead to crashes.

我试过添加可访问性修饰符,例如:

struct ContentView: View {
    var body: some View {
        Text("Hello, World!")
        .accessibility(hint: Text("Just say hi"))
        .accessibility(identifier: "helloWorld")
    }
}
Run Code Online (Sandbox Code Playgroud)

当我点击“Hello, World!”时,错误仍然被记录下来。

我还尝试扩展SwiftUI.AccessibilityNode以使其成为可序列化元素,例如:

import SwiftUI

extension SwiftUI.AccessibilityNode {
}
Run Code Online (Sandbox Code Playgroud)

Xcode 说type SwiftUI.AccessibilityNode doesn't exist