ios - Nach dem Upgrade von Xcode 11.2 von Xcode 11.1 stürzt die App aufgrund von_UITextLayoutView ab




swift uitextview (4)

Es ist ein Fehler seit Xcode 11.2-Beta

Lösung

Rollback zur vorherigen Xcode- Release- Version von:

https://developer.apple.com/services-account/download?path=/Developer_Tools/Xcode_11.1/Xcode_11.1.xip

Beachten Sie, dass Sie Safari zum Herunterladen verwenden und sich zuerst beim Apple-Entwicklerportal anmelden müssen.

Alle anderen Xcode-Versionen und Links zu anderen Ressourcen (einschließlich Release- und Betaversionen) finden Sie hier unter https://developer.apple.com/download/more

Die Problemumgehung

Dies ist eine sehr harte, aber arbeitende Problemumgehung. Ersetzen Sie alle UITextView in Storyboards und Xibs durch die reine UITextView .

Nach dem Upgrade von Xcode 11.2 von Xcode 11.1 stürzt die App ab:

*** Beenden der App aufgrund einer nicht erfassten Ausnahme 'NSInvalidUnarchiveOperationException', Grund: 'Die Klasse mit dem Namen _UITextLayoutView konnte nicht instanziiert werden, da keine Klasse mit dem Namen _UITextLayoutView gefunden wurde. Die Klasse muss im Quellcode definiert oder aus einer Bibliothek eingebunden sein (stellen Sie sicher, dass die Klasse Teil des richtigen Ziels ist). '


Als "schnelle" Lösung können Sie die UITextView direkt aus dem Code und nicht über IB hinzufügen. Zumindest hat es bei mir geklappt. Allerdings ist es aus meiner Sicht besser, auf den vorherigen Xcode zurückzurollen / auf den neuen zu warten.


Das Herunterladen von Xcode 11.1 von https://developer.apple.com/download/more/ Das Zurückschalten von 11.2 auf 11.1 hat den Absturz behoben.

Auch für mich selbst mit Xcode 11.2, als ich mein iPhone auf 13.2 aufrüstete, wurde der Absturz behoben.


Eine schnellere Lösung:

 ///Substitute class for _UITextLayoutView bug class FixedTextView: UITextView { required init?(coder: NSCoder) { if #available(iOS 13.2, *) { super.init(coder: coder) } else { let rect = CGRect(origin: .zero, size: CGSize(width: 100, height: 44*3)) super.init(frame: rect, textContainer: nil) } } } 

Fügen Sie diesen Code irgendwo hinzu und ersetzen Sie dann alle Storyboard-Instanzen in FixedTextView .

Hinweis: Sie verlieren alle in den Storyboards erstellten Attribute. Dies kann schwerwiegende Auswirkungen haben (z. B. Einstellung der Stellvertreter, Größe usw.).







xcode11.2