IB Designables: Fehler beim Aktualisieren des Status des automatischen Layouts: Fehler beim Laden der Designables aus dem Pfad (null)

76

Ich sehe diesen Fehler für ein XIB. Aber alles andere wird kompiliert und es scheint keinen Schaden durch diesen Fehler zu geben. Muss ich mir darüber Sorgen machen? Was ist das Problem hier und wie würde ich das beheben?

Geben Sie hier die Bildbeschreibung ein

UPDATE: Ich habe Cocoapods auf die neueste Version (0.36.3) aktualisiert und während dies das Problem für einige Kompilierungen behoben hat, ist der Fehler zurückgekehrt und ich sehe jetzt einen zusätzlichen Fehler:

Geben Sie hier die Bildbeschreibung ein

Oren
quelle
stackoverflow.com/questions/50644306/… Dies wird Ihnen helfen
Hardik1344

Antworten:

77

Es ist ein bekanntes Problem in CocoaPods. Es wurde in Version 0.36.1 behoben . Aktualisieren Sie einfach Ihre CocoaPods und fügen Sie Ihrer Pod-Datei eine bestimmte Codezeile hinzu: use_frameworks! nach Plattform: ios, '7.0'

Ihre Datei sieht also folgendermaßen aus:

platform :ios, '7.0'

use_frameworks!

/// here will be dependencies etc. ///

Aktualisiert:

Vollständige Liste der Schritte, um das Problem ein für alle Mal zu beseitigen:

  • Projekt schließen;
  • Terminal App öffnen;
  • Aktualisieren Sie CocoaPods selbst auf ver. 0,36,1 oder höher;
  • Navigieren Sie in Terminal zu Ihrem Projektordner.
  • Typ : pod update;
  • Öffnen Sie Ihr Projekt in xCode.
  • Sauberes Projekt;
  • Projekt erneut erstellen.
Andrei Konstantinov
quelle
2
Eigentlich schien es mir der Trick zu sein, nur Cocoapods zu aktualisieren. Ich bin überrascht, dass Cocoapods mir einen Fehler in einem nicht verwandten XIB gegeben haben, aber so geht es ...
Oren
1
Ich nehme das zurück. Der Fehler ist zurückgekehrt. Ich habe die von Ihnen vorgeschlagenen zusätzlichen Änderungen vorgenommen und der Fehler bleibt weiterhin bestehen. Jetzt erhalte ich auch mehrere O-Link-Warnungen zu iOS8
Oren
2
Versuchte das mehrmals. kein Glück
Oren
1
Du hast recht. Ich verweise in meinem XIB auf TTTAttributedLabel. Sobald ich das entferne, verschwindet der Fehler. Wenn ich es zurücklege, kehrt der Fehler zurück. Ich bin mir nicht sicher, was ich jetzt dagegen tun kann, aber zumindest kenne ich die Ursache. Danke für Ihre Hilfe!
Oren
1
Ich habe gerade "use_frameworks!" und mit FSCalender funktioniert alles einwandfrei. Danke
Zulqarnain
32

Nachdem ich einige Nachforschungen angestellt und gegraben habe, kann ich bestätigen, dass es keine Möglichkeit gibt, dieses Problem zu lösen.

Dies ist ein Xcode-Fehler.

Das ist alles. Wir müssen auf das Update warten.

Starten Sie den Xcode einfach neu .

Bartłomiej Semańczyk
quelle
8
das ist richtig. Für mich hat es nichts mit Kakaofrüchten zu tun, es passiert die ganze Zeit mit meinen eigenen IB Designables. alles versucht ...
benjamin.ludwig
2
Welche Version von Xcode war das? Ich benutze 7.1.0, ich habe es immer noch
CalZone
2
Ich verwende Xcode 8.0. Dieses Problem wird immer noch nicht behoben.
Statik
4
Der Interface Builder ist sehr langsam und fehlerhaft. Kann fast nicht für das Komponentendesign verwendet werden. Ja, in Xcode 8.0 ist es immer noch dasselbe. Ich denke, einer der wichtigsten Gründe, warum ich in der iOS-Entwicklung mehr Spaß habe als in der Android-Entwicklung, ist, dass das IDE-Tool viel besser ist. Apple hat in seinem Xcode-Tool sehr schlechte Arbeit geleistet. Es wird immer schlimmer !!!
Bagusflyer
3
Ich bin auf Xcode 8.2 und nach 1,5 Jahren ist es immer noch dasselbe. Nicht zu fassen.
Kann Poyrazoğlu
17

Das hat bei mir funktioniert:

  1. abgeleitete Daten entfernen (Einstellungen> Standorte)
  2. Starten Sie Xcode neu
  3. sauberes Projekt (Produkt> sauber)
Wojtek Dmyszewicz
quelle
Es klappt! Es sieht so aus, als wäre das Ablegen des DerivedData-Cache der richtige Weg. Ich musste das Projekt nicht einmal bereinigen.
Apophenia Overload
Ja, das hat es auch für mich getan.
user1366265
4
Das Problem wird sicher wieder auftreten. Dies ist ein Xcode-Fehler.
Bagusflyer
13

2016 ist das Jahr, xCode 7.3.1: Ich habe diesen Fehler erhalten. (Verwenden von Kakaofrüchten 1.0, aber es spielt keine Rolle)

URSACHE: In IB wurde eine spezielle UILabel-Unterklasse verwendet. eine Glocke läuten?

ELEGANTE LÖSUNG:

1: Unterklasse TTTAttributedLabel oder FXLabel oder was auch immer du hast. Verwenden Sie das in IB.

2: Fügen Sie diese Zeilen in die untergeordnete .h-Datei ein:

#ifndef IB_DESIGNABLE
#define IB_DESIGNABLE
#endif

@class LabelFromPod;


IB_DESIGNABLE @interface YourLabel : LabelFromPod {
 ...
}

3: Dann müssen Sie das Projekt löschen, xCode beenden, neu erstellen (übliches xCode-Panikprotokoll) und das Problem wird behoben sein.

UPDATE 2017 xCode 8.2.1: Es wird alles schlimmer :( Das leere VC-Problem: Der IB lädt nicht einmal die UI-Elemente für View-Controller mit diesen IB_DESIGNABLEs. Ich bin ahnungslos :)

Yaro
quelle
1
Die Fehler treten weiterhin zufällig auf. Durch Beenden von Xcode wird das Problem behoben.
Keithyip
Ein großes Lob für die Identifizierung des genauen Problems @Jaro Obwohl ich ifndef Anweisungen Problem hinzugefügt habe, ist es immer noch da. Löschen, Beenden, Wiederherstellen wird helfen. aber es ist immer noch ein Fehler in xcode. Und Apfel sollte es reparieren.
Ashish Pisey
9

Ich hatte das gleiche Problem mit TTTAttributedLabel und folgte Andreys Antwort, um zu versuchen, es zu beheben. Der Build war erfolgreich, aber danach scheinen die Bundle-Dateien anderer Pod-Module (in meinem Fall TSMessage, SVProgressHUD) nicht geladen werden zu können. Dies wird auch im Cocoapods-Blogbeitrag angegeben, und ich möchte die Bundle-Ressourcen nicht in das mainBundle verschieben (und ich habe nicht überprüft, ob dies funktioniert.)

Daher entscheide ich mich, TTTAttributedLabel aus der Poddatei zu entfernen und nur die Quelle direkt einzuschließen, um diesen Fehler zu beseitigen. Das funktioniert bei mir und ich hoffe, es ist auch eine andere Antwort auf dieses Problem.

redcomethk
quelle
Nur hilfreiche Antwort für mich.
Bisma
1
Ich habe auch TTTAttributedLabel verwendet. Als Problemumgehung wurde die Klasse für TTTAttributedLabels vorübergehend wieder in UILabel geändert, meine Änderungen am automatischen Layout vorgenommen und die Klassen dann zurückgesetzt. Ziemlich nervig, aber es hat funktioniert.
Ben Kane
7

Es mag spät sein, aber das Hinzufügen dieser Codes zur Initialisierung hat bei mir funktioniert, als ich dieses Problem bekam

required override init(frame: CGRect) {
    super.init(frame: frame)
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}
Han Daniel
quelle
Das hat es geschafft! Mann, ich wurde verrückt, weil ich diesen Fehler nicht loswerden konnte!
livingtech
3

Ich hatte das gleiche Problem wie bei der Verwendung der benutzerdefinierten Ansicht von POD im Storyboard.

Die folgenden Schritte haben das Problem für mich behoben

  • Fügen Sie die folgende Zeile (So schalten Sie den POD in einem dynamischen Framework ein) zum Pod hinzu use_frameworks!
  • Machen pod update
  • Starten Sie den Xcode neu
Durai Amuthan.H
quelle
3

In Podfilehinzufügen , um dieses Skript am Ende und führte pod installwieder.

post_install do |installer|
    installer.pods_project.build_configurations.each do |config|
        config.build_settings.delete('CODE_SIGNING_ALLOWED')
        config.build_settings.delete('CODE_SIGNING_REQUIRED')
    end
end
Haroldo Gondim
quelle
1

Das Aktualisieren von Cocoapods in Mac mit dem folgenden Befehl löste dieses Problem teilweise für mich:

sudo gem install cocoapods
KawaiKx
quelle
1

Das Problem könnte sein, dass Sie ein Framework oder eine benutzerdefinierte UILabel-Klasse verwendet haben. wie MarqueLabel oder TTTAttributed Label. Kommentar #use_frameworksin der Pod-Datei auskommentieren . Ausführen pod update. Bereinigen und erstellen Sie Ihr Projekt neu. Dies wird Ihr Problem lösen.

Ashish Pisey
quelle
1

Ich hatte einen ähnlichen Fehler, als ich ihn benutzte Cocoapodsund nicht konnte use_frameworks!. Ich landete durch einen Rahmen gabeln, dass Anwendungen IBDesignableund IBInspectableund diese Keywords zu entfernen. Alle Anpassungen erfolgen programmgesteuert:

class CardFloatingLabelTextField: SkyFloatingLabelTextField {

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        self.errorMessage = nil
        self.titleFont = UIFont.systemFont(ofSize: 11)
        self.titleFormatter = { (text: String) in return text }
        self.titleColor = UIColor.channelsColorGrayFootnoteAndCaptions()
        self.selectedTitleColor = UIColor.channelsColorGrayFootnoteAndCaptions()
        self.lineColor = UIColor.channelsColorGrayContentAndLines()
        self.selectedLineColor = UIColor.channelsColorDarkBlue()
        self.lineHeight = 1
        self.selectedLineHeight = 1

    }

}

Es funktioniert und erzeugt keine Fehler mehr im Interface Builder. Es ist jedoch schade, dass ich diese Problemumgehung durchführen musste.

Denis Kutlubaev
quelle
1

Entfernen Sie das, was Sie in der Poddatei haben, und geben Sie die Quelle direkt an, um dieses Problem zu beheben.

Für mich geht das!

Sunil Targe
quelle
1

Ich bin mit diesem Problem konfrontiert, wenn sowohl die Basisklasse als auch die untergeordnete Klasse als @IBDesignable-Klasse erwähnt werden. Erkundigen Sie sich möglicherweise bei der Klasse eines Drittanbieters und Ihrer Klasse, ob diese vererbt wurde

Pushpa Raja
quelle