Nach dem Upgrade von Xcode 11.1 auf Xcode 11.2 stürzt die App aufgrund von _UITextLayoutView ab

351

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

*** Beenden der App aufgrund der nicht erfassten Ausnahme 'NSInvalidUnarchiveOperationException', Grund: '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 verknüpft sein (stellen Sie sicher, dass die Klasse Teil des richtigen Ziels ist). '

Warum passiert dies? Wie kann ich diesen Absturz verhindern?

Sudhakar Tharigoppula
quelle
17
Scheint wie der Xcode 11.2-Fehler. Überprüfen Sie den Thread forums.developer.apple.com/thread/125287 . Höchstwahrscheinlich hängt es mit den TextViews in der Hierarchie zusammen
Pavel Stepanov
3
@ DanielStorm leider hat das nicht geholfen. Ich habe gerade eine einfache UITextView zu einem Bildschirm hinzugefügt, der sie vorher nicht hatte (und vorher auch nicht abgestürzt ist :)). Jetzt stürzt es mit dem gleichen Fehler ab. Das Problem besteht weiterhin für alle Geräte / Simulatoren mit Ausnahme des neuesten iOS 13.2
Pavel Stepanov
3
Weiß jemand, ob dies Produktions-Apps zum Absturz bringt, die mit Xcode 11.2 erstellt wurden, wenn sie auf iOS 13.1.2-Geräten ausgeführt werden?
Gfpacheco
2
Dies ist eine vollkommen gute Frage, daher die 198 Stimmen, daher bin ich mir nicht sicher, warum jemand sie als "unklar auf Eis gelegt" markiert hat
Mike Volmar
4
@ MikeVolmar Ich habe für das Schließen gestimmt und bin nicht mehr relevant. Es ist mit 11.2.1 behoben. Diese Frage hatte ein sehr kurzes Fenster der Nützlichkeit.
rmaddy

Antworten:

145

Glückwunsch

Die neue Version von Xcode (11.2.1) ist ab sofort verfügbar. Dies ist der beste Weg, um dieses Problem zu beheben.

Problemumgehungen

@ Mojtaba Hosseini Die Lösung, die ich vorgeschlagen habe, war die Hilfe und die Teilnahme meiner Seite an meine Entwicklerkollegen über StackOverflow. Sie, ich und der Rest des Entwicklers hier wissen bereits, dass dieses Problem behoben sein wird, wenn die neue Version von Apple angekündigt wird.

Aber neben allem

Die oben genannte Lösung wurde von Apple Review definitiv akzeptiert, da überhaupt keine private API beteiligt ist. Dieser Ansatz ist dem Erstellen von Eigenschaften wie sehr ähnlich

@interface UITextView (Layout)

Oder

UITextView + Layout.h

Wenn Sie also eine Eigenschaft erstellen, verwenden Sie APPLE Private Components direkt und modulieren sie je nach Ihren Anforderungen oder Anforderungen neu.

Das einfache Beispiel sind AMFNetworking-Klassen

- (void)setImageWithURL:(NSURL *)url {
    [self setImageWithURL:url placeholderImage:nil];
}

Ich hoffe, ich bin mit der Behauptung fertig

Die folgende Antwort war nur eine Hilfe von meiner Seite, damit Entwickler die Entwicklung fortsetzen können, da Sie ursprünglich vorgeschlagen haben, Xcode zurückzusetzen. Es war eine schlechte Praxis, 8 GB Xcode erneut herunterzuladen, da wir alle wissen, dass die neue Version von Xcode bald veröffentlicht wird.

Während es in Xcode 11.2.1 behoben ist, habe ich eine Lösung für Xcode 11.2, mit der Sie diesen Absturz beseitigen können:

*** Beenden der App aufgrund der nicht erfassten Ausnahme 'NSInvalidUnarchiveOperationException', Grund: '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 verknüpft sein (stellen Sie sicher, dass die Klasse Teil des richtigen Ziels ist). '

LÖSUNG

Gehen Sie zur Build-Einstellungssuche nach "DEAD_CODE_STRIPPING" und setzen Sie sie auf NO

DEAD_CODE_STRIPPING = NO

Dann

Dateien erstellen UITextViewWorkaround

UITextViewWorkaround.h

    #import <Foundation/Foundation.h>


    @interface UITextViewWorkaround : NSObject
    + (void)executeWorkaround; 
@end

UITextViewWorkaround.m

#import "UITextViewWorkaround.h"
#import  <objc/runtime.h>



    @implementation UITextViewWorkaround

    + (void)executeWorkaround {
        if (@available(iOS 13.2, *)) {
        }
        else {
            const char *className = "_UITextLayoutView";
            Class cls = objc_getClass(className);
            if (cls == nil) {
                cls = objc_allocateClassPair([UIView class], className, 0);
                objc_registerClassPair(cls);
    #if DEBUG
                printf("added %s dynamically\n", className);
    #endif
            }
        }
    }

    @end

Führen Sie es im App-Delegaten aus

#import "UITextViewWorkaround.h"

        - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
            // Override point for customization after application launch.

            [UITextViewWorkaround executeWorkaround];
    return yes;
    }

Kompiliere den Code und du wirst eine laufende App haben :)

Aftab Muhammed Khan
quelle
2
Wenn es für Sie funktioniert, rangieren Sie freundlich, damit andere diese Lösung ebenfalls ausprobieren können
Muhammed Khan
3
@Hardy_Germany Ich habe dies ein wenig getestet. Für Swift können Sie Folgendes versuchen: class UITextViewWorkaround: NSObject {class func executeWorkaround () {if #available (iOS 13.2, *) {} else {let className = "_UITextLayoutView" var cls = objc_getClass (className ) if cls == nil {cls = objc_allocateClassPair (UIView.self, className, 0) objc_registerClassPair (cls as! AnyClass) #if DEBUG print ("% @ dynamisch hinzugefügt \ n", className); #endif}}}}
John Nimis
2
@ DaveDude DEAD_CODE_STRIPPING = NO wird benötigt, wenn Sie Swift Package Manager mit Xcode 11.2
Cœur
5
@pradipsutariya ja natürlich, warum ändern wir nie etwas in APPLE CLASSES.
Aftab Muhammed Khan
5
Nur Xcode 11.2.1 GM Seed (Beta) wird freigegeben. Eine stabile Version wird möglicherweise bald veröffentlicht.
Lal Krishna
221

Update: Behoben! 🎉🎊

Die einzige Lösung ist das Update

Dieser Fehler wird festgelegt in Xcode 11.2.1. Sie können es also hier herunterladen und verwenden.

Storyboards mit UITextView führen nicht mehr zum Absturz der App unter Betriebssystemversionen vor iOS 13.2, tvOS 13.2 oder macOS 10.15.2. (56808566, 56873523)


Xcode 11.2 wird von Apple am 5. November 2019 nicht mehr unterstützt

Wenn Sie jemals versuchen, Ihre mit Xcode 11.2 erstellte App an den AppStore zu senden, werden Sie abgelehnt:

App Store Connect Operation Warnung

WARNUNG ITMS-90703 : "Veralteter Xcode-Build. Aufgrund behobener Probleme mit App-Archiven haben wir Xcode 11.2 am 5. November 2019 veraltet. Laden Sie Xcode 11.2.1 oder höher herunter, erstellen Sie Ihre App neu und reichen Sie sie erneut ein."

Daher sind alle mit dem Xcode 11.2 durchgeführten Problemumgehungen nutzlos


Es ist ein Fehler für Xcode 11.2 und in Xcode 11.2.1 behoben.

Lösung (en)

Rollback zur vorherigen Xcode Release - Version von: Rollback ist keine Option mehr und App Store wird jeden Build mit Xcode ablehnen unter 11.2.1 einen Blick auf diese

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 sollten und sich zuerst beim Apple-Entwicklerportal anmelden müssen .

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

Die Problemumgehung

Dies ist eine sehr harte, aber funktionierende Problemumgehung. Ersetzen Sie alle UITextViews in Storyboards und Xibs durch die reine Codeversion .


Beachten Sie, dass dieser Fehler von Apple gefunden und behoben wurde

Fest

Ebenfalls früher wurde der Fehler von Apple Staff Edford bestätigt

Bestätigung


Für diejenigen mit iOS 13.2, die Xcode 11.1 nicht mehr verwenden können:

  1. Aktualisieren Sie macOS auf 10.15.1 oder höher
  2. Installieren Sie Xcode 11.2.1 oder höher
  3. Es sollte jetzt auf dem aktualisierten Gerät funktionieren.

Für diejenigen mit Storyboard:

  1. Unterklasse UITextView
  2. Weisen Sie es allen UITextViewObjekten zu
  3. Vergessen Sie nicht, alle Eigenschaftsänderungen zu aktualisieren, die in der Unterklasse verloren gehen können.

Für diejenigen, die mit Methoden-Swizzling vertraut sind (Objekt und dynamisches Verhalten)

Gehen Sie zur @aftab muhammed khan Antwort für Objective-C und @MikRo Antwort für Swift angepasste Version

Tu es einfach nicht mehr:

Selbst wenn diese beiden letzten Problemumgehungen keine private Apple-API verwenden , werden sie im AppStore abgelehnt, da Apple keine Builds mit Xcode-Versionen unter 11.2.1 akzeptiert !

Und noch einmal:

Xcode 11.2 wird von Apple am 5. November 2019 nicht mehr unterstützt

Mojtaba Hosseini
quelle
3
Traurig, aber die Lösung funktioniert für mich. Vielen Dank! 11.1 funktioniert. Ich würde nicht empfehlen, in reinen Code zu konvertieren, da ich wette, dass bald ein Fix herauskommt. Wenn Sie nichts dagegen haben: Aktualisieren Sie diese Antwort, sobald eine neue Version funktioniert. Wäre schlecht, wenn Leute anfangen, das 11.1-Event herunterzuladen, obwohl es eine feste Version gibt :)
Sebastian Weiß
2
Ich habe bereits 11.1, habe aber nicht funktioniert, ich habe kein Upgrade auf 11.2 durchgeführt.
JAHelia
6
Bitte beachten Sie, dass Sie wahrscheinlich die App von Ihrem Entwicklungsgerät löschen und / oder CMD + Shift + K
Xcodes
3
Wie kann ich auf v11.2.1 upgraden? Es wird nicht im App Store angezeigt. Beim Herunterladen des GM-Saatguts vom Entwicklerportal wird versucht, die App für etwa 8 GB vollständig herunterzuladen!
Mesqueeb
3
Auch wenn es veraltet ist, warum entfernt Apple vorerst nicht einfach 11.2 im App Store?
Malcolm Salvador
40

Das Problem wurde in Xcode 11.2.1 behoben.

EDIT: Wie das Update jetzt freigegeben ist, können Sie auf diese Xcode - Version und schalten sollen Kommentar aus dieser Problemumgehung. Wie Mojtaba Hosseini in seiner Antwort erwähnte:

... diese letzten beiden Problemumgehungen verwenden die private Apple-API und werden von der Apple-Überprüfung abgelehnt!

Für die Zeit bis zur Veröffentlichung des Fixes durch Apple war dies eine gute Lösung, um die Entwicklung und das Testen fortzusetzen.


Für Xcode 11.2 habe ich basierend auf der Idee von Aftab Muhammed Khan und mit Hilfe von John Nimis gerade den folgenden Code getestet.

Keine Änderung in den Storyboard-Dateien notwendig!

Ich habe meine AppDelegate.swift-Datei bearbeitet und diese Klasse hinzugefügt

//******************************************************************
// MARK: - Workaround for the Xcode 11.2 bug
//******************************************************************
class UITextViewWorkaround: NSObject {

    // --------------------------------------------------------------------
    // MARK: Singleton
    // --------------------------------------------------------------------
    // make it a singleton
    static let unique = UITextViewWorkaround()

    // --------------------------------------------------------------------
    // MARK: executeWorkaround()
    // --------------------------------------------------------------------
    func executeWorkaround() {

        if #available(iOS 13.2, *) {

            NSLog("UITextViewWorkaround.unique.executeWorkaround(): we are on iOS 13.2+ no need for a workaround")

        } else {

            // name of the missing class stub
            let className = "_UITextLayoutView"

            // try to get the class
            var cls = objc_getClass(className)

            // check if class is available
            if cls == nil {

                // it's not available, so create a replacement and register it
                cls = objc_allocateClassPair(UIView.self, className, 0)
                objc_registerClassPair(cls as! AnyClass)

                #if DEBUG
                NSLog("UITextViewWorkaround.unique.executeWorkaround(): added \(className) dynamically")
               #endif
           }
        }
    }
}

und innerhalb des Delegatenaufrufs für "didFinishLaunchingWithOptions" die Problemumgehung aufrufen

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    // Override point for customization after application launch.

    // This is the workaround for Xcode 11.2
    UITextViewWorkaround.unique.executeWorkaround()
}
Hardy_Deutschland
quelle
34

Ich habe Khans Obj-C-Lösung an Swift angepasst :

import UIKit

@objc
class UITextViewWorkaround : NSObject {

    static func executeWorkaround() {
        if #available(iOS 13.2, *) {
        } else {
            let className = "_UITextLayoutView"
            let theClass = objc_getClass(className)
            if theClass == nil {
                let classPair: AnyClass? = objc_allocateClassPair(UIView.self, className, 0)
                objc_registerClassPair(classPair!)
            }
        }
    }

}

Nennen Sie es am Ende von didFinishLaunchingWithOptionsin AppDelegate.

Danke @Aftab!

MikRo
quelle
Wo müssen wir diesen Code hinzufügen? In delegierten Dateien?
SIDHARTH PU
@SIDHARTHPU können Sie es indidFinishLaunchingWithOptions
Lal Krishna
habe verschiedene Korrekturen an diesem Problem versucht und diese hat den Trick bis Xcode 11.3 gemacht?! Danke!
FlimFlam Vir
1
Dies ist die kürzeste und brillanteste Lösung!
SVD
1
@LalKrishna Erstellen Sie eine neue Datei mit dem Namen UITextViewWorkaround.swift und fügen Sie den obigen Code hinzu. Fügen Sie dann UITextViewWorkaround.executeWorkaround () dies vor der return-Anweisung zu didFinishLaunchingWithOptions hinzu.
Ashishn
22

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 Folgen haben (z. B. Einstellung der Delegierten, Größe usw.).

Garafajon
quelle
Dies scheint ein guter Schritt in Richtung einer Problemumgehung zu sein, aber noch keine Lösung ...
Fattie
18

Aktualisierte Lösung: Update auf Xcode 11.2.1 . Es funktioniert auf iOS 11, 12 oder 13 Geräten für mich.

Weitere Informationen finden Sie in der Apple-Dokumentation. Dieses Update behebt ein kritisches Problem, das dazu führen kann, dass Apps mit UITextView abstürzen.

Alte Lösung: 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 aktualisierte, wurde der Absturz behoben.

anoo_radha
quelle
2
Dies ist die einfachste Lösung - aktualisieren Sie das iPhone iOS auf 13.2
Reefwing
6
Ein Upgrade von iOS ist eindeutig keine Lösung, da OP aus Entwicklersicht spricht.
Keeshux
2
Apple hat bestätigt, dass der Fehler bei iOS-Versionen vor 13.2 und Xcode 11.2 auftritt.
Chuck Krutsinger
XCode auf Version 11.1 (11A1027) herabgestuft - immer noch den gleichen Absturz (
Rommex
Wenn Sie ein Upgrade oder Downgrade durchführen und der Build-Ordner von Xcode (CMD + Shift + K) gemäß Wojtecks ​​Kommentar unten immer noch abstürzt, wurde dies für mich beim Upgrade behoben
Mike Volmar
17

11.2.1 GV-Saatgut behebt dieses Problem

(und es kann verwendet werden, um im App Store zu veröffentlichen)

Gehen Sie zu https://developer.apple.com/download/ . Laden Sie Xcode 11.2.1 GM-Saatgut herunter

Versionshinweise bestätigen, dass dieser Fehler behoben ist:

Geben Sie hier die Bildbeschreibung ein

Kunst
quelle
5
Bitte beachten Sie, dass Sie nach der Installation von Xcode 11.2.1 GM Seed wahrscheinlich die App von Ihrem Entwicklungsgerät löschen und / oder den Build-Ordner von Xcode (CMD + Shift + K) bereinigen sollten.
Wojtek Dmyszewicz
13

Sie können die letzte Beta-Version von Xcode (11.2.1 GM) von der Apple-Entwickler-Website herunterladen.

Hier der direkte Link

Xcode 11.2.1 GV-Saatgut

BossOz
quelle
Bitte beachten Sie, dass Sie nach der Installation von Xcode 11.2.1 GM Seed wahrscheinlich die App von Ihrem Entwicklungsgerät löschen und / oder den Build-Ordner von Xcode (CMD + Shift + K) bereinigen sollten.
Wojtek Dmyszewicz
installiert und ohne andere Prozedur ausgeführt werden. Problem behoben ✌️
BossOz
Wie installiere ich das? Es gab mir einen Ordner, aber es gibt keine ausführbare Datei
Scobee
1
Laden Sie einfach zip von dem bereitgestellten Link herunter und extrahieren Sie es. Kopieren Sie dann die App in den Anwendungsordner.
BossOz
1
Das Problem ist, dass ich beim Extrahieren zwei Dateien erhalte, Inhalt und Metadaten. Deshalb habe ich gefragt, was ich damit machen soll. Ich habe ein Archivierungsprogramm verwendet, weil das Klicken normalerweise fehlgeschlagen ist. Ich werde es erneut versuchen
Scobee
12

Verbesserung der @ garafajon-Antwort. Bei mir funktioniert es in den meisten Fällen.

///Substitute class for _UITextLayoutView bug
class FixedTextView: UITextView {
    required init?(coder: NSCoder) {
        if #available(iOS 13.2, *) {
            super.init(coder: coder)
        }
        else {
            super.init(frame: .zero, textContainer: nil)
            self.autoresizingMask = [.flexibleWidth, .flexibleHeight]
            self.contentMode = .scaleToFill

            self.isScrollEnabled = false   // causes expanding height

            // Auto Layout
            self.translatesAutoresizingMaskIntoConstraints = false
            self.font = UIFont(name: "HelveticaNeue", size: 18)
        }
    }
}
Awsom3D
quelle
1
Funktioniert perfekt. Der Code von @ garafajon verursachte Probleme mit Boxen an unerwarteten Stellen. Dies behebt diese Probleme ~ tolle Arbeit!
Ekrenzin
8

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

Pavel Stepanov
quelle
6

Es ist ein Fehler mit Xcode 11.2. Unterklassige Textansichten stürzen auf allen Geräten ab, auf denen das neu eingestellte iOS-Build (13.2) nicht installiert ist. Sie sollten mit diesem Build wahrscheinlich kein Release erstellen.

Du kannst jetzt:

  • Downgrade von Xcode auf 11.1 oder
  • Aktualisieren Sie Ihr Gerät auf iOS 13.2
mark.so.cgn
quelle
1
Betrifft dieser Fehler also nur untergeordnete Textansichten?
Darren
1
Das Aktualisieren von iOS beim Aktualisieren von Xcode behebt das Problem.
Buyin Brian
2
Die Frage ist, ob der Absturz auf einer veröffentlichten App mit jedem iOS kleiner als 13.2 passieren wird ... Ich habe Angst zu versuchen ...
mark.so.cgn
6

Ich habe eine erfolgreiche Problemumgehung verwendet, aber es war schmerzhaft. Dies ist der Prozess, dem ich gefolgt bin:

  1. Öffnen Sie die XIB in einem Texteditor
  2. Finden Sie die Beleidigung TextView. In meinem Fall:
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="782-j1-88c" customClass="LCAnsiConsoleTextView">
  <rect key="frame" x="16" y="20" width="343" height="589"/>
  <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
  <fontDescription key="fontDescription" name="Menlo-Regular" family="Menlo" pointSize="12"/>
  <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
</textView>
  1. Beachten Sie seine id(in meinem Fall: id="782-j1-88c")
  2. Überschreiben Sie die Klasse wie in den obigen Antworten angegeben und erstellen Sie die Optionen neu (meine ist Objective-C, sorry):
@implementation FixedTextView

- (id) initWithCoder:(NSCoder*)coder
{
    if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion){13,2,0}])
        self = [super initWithCoder:coder];
    else {
        self = [super initWithFrame:CGRectMake(16, 3, 343, 605)];
        self.editable = YES;
        self.selectable = YES;
        self.insetsLayoutMarginsFromSafeArea = YES;
        self.clipsToBounds = YES;
        self.clearsContextBeforeDrawing = YES;
        self.autoresizesSubviews = YES;
        self.contentMode = UIViewContentModeScaleToFill;
        self.scrollEnabled = YES;
        self.userInteractionEnabled = YES;
        self.multipleTouchEnabled = YES;
        self.translatesAutoresizingMaskIntoConstraints = NO;
        self.font = [UIFont fontWithName:@"Menlo-Regular" size:12.0];
    }
    return self;
}
  1. Beachten Sie die Einschränkungen, die Ihre Textansichts-ID enthalten, und erstellen Sie diese Einschränkungen für die anderen Element-IDs in Ihrer Ansicht oder Ihrem Ansichts-Controller neu. In meinem Fall:
- (id) initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithCoder:aDecoder];
    if (self) {
        [self xibSetup];
        [self initView];
/*
        <constraint firstItem="75C-lt-YtE" firstAttribute="top" secondItem="782-j1-88c" secondAttribute="bottom" constant="8" symbolic="YES" id="8SH-5l-FAs"/>
        <constraint firstItem="782-j1-88c" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leadingMargin" id="Mve-aZ-HCe"/>
        <constraint firstItem="782-j1-88c" firstAttribute="leading" secondItem="75C-lt-YtE" secondAttribute="leading" id="dPG-u3-cCi"/>
        <constraint firstItem="782-j1-88c" firstAttribute="trailing" secondItem="iN0-l3-epB" secondAttribute="trailingMargin" id="sjT-0Q-hNj"/>
        <constraint firstItem="782-j1-88c" firstAttribute="top" secondItem="vUN-kp-3ea" secondAttribute="top" id="vic-vZ-osR"/>
*/
        [self.command.topAnchor constraintEqualToAnchor:self.console.bottomAnchor constant:8].active = YES;
        [self.console.leadingAnchor constraintEqualToAnchor:self.layoutMarginsGuide.leadingAnchor].active = YES;
        [self.console.leadingAnchor constraintEqualToAnchor:self.command.leadingAnchor].active = YES;
        [self.console.trailingAnchor constraintEqualToAnchor:self.trailingAnchor].active = YES;
        [self.console.topAnchor constraintEqualToAnchor:self.safeAreaLayoutGuide.topAnchor].active = YES;

    }
    return self;
}

Dadurch wurde das Problem für mich behoben, ohne dass die gewünschte Funktionalität verloren ging. Zum Glück hatte ich nur einen UITextViewzu ersetzen. Andernfalls wird dies unhaltbar.

Eric Lange
quelle
2

Ich hatte das gleiche Problem, dass ich gerade meinen Xcode 11.2 auf 11.2.1 aktualisiert habe. Es hat gut funktioniert.

Nach dem Upgrade habe ich das gleiche auf iOs 13 und iOS 12 getestet und es hat gut funktioniert.

Mohammad Parvez
quelle
Duplikat der BossOz-Antwort.
Cœur
0

1. Problem:

Es gibt ein Problem mit Xcode 11.2, bei dem Storyboards mit UITextView dazu führen, dass die App unter Betriebssystemversionen vor iOS 13.2 abstürzt, wenn sie mit Xcode 11.2 kompiliert wird.

Xcode 11.2

Überprüfen Sie diese Apple-Dokumentation .

2. Lösung:

Die einzige Lösung besteht darin, Ihren Xcode auf 11.2.1 oder 11.3 zu aktualisieren .

Xcode 11.2.1 wurde speziell veröffentlicht, um dieses Absturzproblem zu beheben.

Geben Sie hier die Bildbeschreibung ein Überprüfen Sie diese Apple-Dokumentation.

3. Vorschlag:

Ich würde Ihnen empfehlen, die neueste Version von Xcode 11.3 zu verwenden, da dies die Entwicklung von Apps für iOS 13.3 unterstützt und es auch viele neue Funktionen gibt. Überprüfen Sie diese Apple-Dokumentation .

Jayprakash Dubey
quelle
-1

Dieses Problem wurde in Xcode Version 11.2.1 behoben und in den Versionshinweisen aufgeführt:

Dieses Update behebt ein kritisches Problem, das dazu führen kann, dass Apps, die UITextView verwenden, abstürzen

Screenshot der Xcode-Versionshinweise

pkamb
quelle