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

时间:2019-10-18 11:02:50

标签: accessibility swiftui maccatalyst

我用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

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

有人知道如何解决吗?

2 个答案:

答案 0 :(得分:13)

据我所知,没有办法消除该错误,也没有必要;这是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")
    }
}

当我单击“ Hello,World!”时,错误仍然记录。

我还尝试扩展SwiftUI.AccessibilityNode使其可序列化,例如:

import SwiftUI

extension SwiftUI.AccessibilityNode {
}

Xcode说type SwiftUI.AccessibilityNode doesn't exist

答案 1 :(得分:1)

如果您发现它们像我一样烦人,您可以按照此答案中的说明将它们静音:

Hide strange unwanted Xcode logs