Katalizator „SwiftUI.AccessibilityNode” nie jest znanym elementem możliwym do serializacji

20

Stworzyłem świeżą aplikację jednostronicową na iOS (w tym SwiftUI) z Xcode 11.1 i włączoną Mac Catalyst. Po uruchomieniu nowego projektu na komputerze Mac (oczywiście macOS 10.15) po dotknięciu okna raz pojawia się następujący błąd.

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

Uwaga: usunąłem również funkcję Sandbox, w przeciwnym razie pojawia się błąd związany z niemożnością pisania ApplicationAccessibilityEnabled

Czy ktoś wie, jak to rozwiązać?

Lukas Kirner
źródło
1
Znalazłem to na Twitterze twitter.com/steipete/status/1154677703100026880, więc obecnie wydaje się, że to normalne
Lukas Kirner
Ten wątek na Twitterze nie wydaje się być istotny.
drewster
Czy masz awarie? Zaraz po wiadomości o „nieznanym możliwym do serializacji elemencie” dostaję awarię warunkową.
drewster
Jak dotąd żadnych awarii
Lukas Kirner
Również się nie
zawiesił,

Odpowiedzi:

11

O ile mi wiadomo, nie ma sposobu na pozbycie się tego błędu i nie ma takiej potrzeby; jest to coś nieodłącznego w SwiftUI. Występuje na iOS, iPadOS i (dlatego) Mac Catalyst, nawet w zupełnie nowym projekcie. Wydaje się, że nie szkodzi to nic innego, niż martwić nas, programistów.

Pracuję w SwiftUI przez ostatnie sześć miesięcy w pełnym wymiarze czasu nad aplikacją, która jest obecnie produkowana na iOS, iPadOS i MacOS (Catalyst). This class 'SwiftUI.AccessibilityNode' is not a known serializable elementBłąd został tam od początku. Nie prześledziłem, że jest to źródłem jakiegokolwiek problemu w ciągu sześciu miesięcy rozwoju SwiftUI.

Jeśli otworzysz Xcode, utwórz nowy projekt iOS z jednym widokiem i uruchom go bez zmian, wyświetli się „Witaj, świecie!”. Kliknij „Witaj, świecie!” a twoja konsola się zaloguje [AXRuntimeCommon] This class 'SwiftUI.AccessibilityNode' is not a known serializable element and returning it as an accessibility element may lead to crashes.

Próbowałem dodać modyfikatory ułatwień dostępu, np .:

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

Błąd nadal jest rejestrowany po kliknięciu „Witaj, świecie!”.

Próbowałem również rozszerzyć, SwiftUI.AccessibilityNodeaby uczynić go elementem możliwym do serializacji, np .:

import SwiftUI

extension SwiftUI.AccessibilityNode {
}

Xcode mówi type SwiftUI.AccessibilityNode doesn't exist.

ggruen
źródło