Dieser Fehler wird beim Erstellen einer reaktionsnativen iOS-App auf xcode angezeigt.
Dieser Fehler wurde nach der npm-Installation und der rpm-Verknüpfung der reaktionsnativen fs- Bibliothek angezeigt . Aber nachdem ich online nach einer Lösung gesucht hatte, bemerkte ich, dass viele Leute den gleichen Fehler erhalten, wenn sie andere native React-Bibliotheken installieren.
Eine mögliche Lösung , die von vielen vorgeschlagen wird, ist das Hinzufügen der folgenden Elemente unter "Build-Einstellungen" -> "Header-Suchpfade".
$(SRCROOT)/../node_modules/react-native/React
- (rekursiv)
Aber kein Glück mit dieser Lösung, immer noch den gleichen Fehler
react-native-webrtc
Antworten:
In meinem Fall trat dieses spezielle Problem auf, als ich versuchte, eine reaktionsnative App mit 0,40+ für iOS zu archivieren (Lösung wurde hier gefunden: Zuverlässiges Build-on
^0.39.2
schlägt beim Upgrade auf fehl^0.40.0
).Was geschah, war, dass Xcode versuchte, die reaktionsnativen Bibliotheken parallel zu erstellen, und Bibliotheken mit impliziten Reaktionsabhängigkeiten erstellte, bevor die Reaktionsbibliothek tatsächlich erstellt wurde.
Die Lösung in meinem Fall war:
Deaktivieren Sie die parallelen Builds:
Hinzufügen reagieren als Projektabhängigkeit
quelle
Stellen Sie sicher, dass Sie das Ziel über Ihrem Ziel deaktivieren
Parallelise Build
und hinzufügenReact
quelle
QUICK FIX (nicht das beste)
Ändern Sie die reaktionsreaktiven nativen Headerzeilen:
Zu:
Hier ist ein Beispiel für Änderungen, die ich für die Bibliothek vornehmen musste, die ich verwenden wollte: Schließt # 46 - Datei 'RCTBridgeModule.h' nicht gefunden .
quelle
#import <React/RCT...h>
? hier festschreiben#import "RCTBridgeModule.h"
hat heute für mich wirklich besser funktioniert.Veränderung
zu
quelle
Für Zuschauer, die diesen Fehler nach dem Upgrade von React Native auf 0.40+ erhalten haben, müssen Sie möglicherweise in
react-native upgrade
der Befehlszeile ausgeführt werden.quelle
Wenn
Libraries/React.xcodeproj
xcode rot ist, installieren Sie node_modules neuMein neu erstelltes Projekt aus React-Native 0.46.3 war rot: SI hat npm 5.3.0 und Garn 0.24.5, als ich React-Native Init gemacht habe
quelle
Die neuesten Versionen reaktionsnativer Bibliotheken, wie in früheren Beiträgen erläutert , haben hier wichtige Kompatibilitätsänderungen. Wenn Sie noch kein Upgrade auf React-Native 0.40+ planen, können Sie die Installation der vorherigen Version der Bibliothek erzwingen, z. B. mit React-Native-fs:
quelle
Ich konnte ein Debug erstellen, aber kein Archiv erstellen.
Ich habe dieses Problem gelöst, indem ich das
React.xcodeproj
in / node_modules / react-native / React gefundene Element in mein Stammverzeichnis in Xcode gezogen und dann React als Zielabhängigkeit in Erstellungsphasen> Zielabhängigkeiten hinzugefügt habe.quelle
React.xcodeproj
in/node_modules/react-native/React
.react-native run-ios
, werden Kompilierungsfehler angezeigt, die in Xcode nicht auftreten. Das völlige Fehlen relevanter Unterlagen ist frustrierend.Nach React Native 0.60 wird dieses Problem häufig durch eine verknüpfte Bibliothek verursacht, die mit der neuen Funktion "Automatische Verknüpfung" gemischt ist. Das behebt es für mich
Trennen Sie die Verknüpfung der alten Bibliothek mit
Aktualisieren Sie die Pods-Integration vollständig mit
Laden Sie nun Ihren Arbeitsbereich neu und erstellen Sie einen sauberen Build.
quelle
Dieser Fehler trat bei mir auf, nachdem ich den
pod install
Befehl für die neuen Abhängigkeiten ausgeführt hatte. Zusammen mit diesen war auch React installiert worden. Daher wurde Xcode wahrscheinlich für den Pfad verwechselt. Ich habe diese Zeilen aus PodFile entfernt und der Fehler war verschwunden. Bitte beachten Sie, dass die von hier entfernten bereits in Xcode verlinkt waren.quelle
Bei mir trat dieser Fehler auf, als ich der App ein neues Schema / Ziel ( app.staging ) hinzufügte und Pods mithilfe der Pod-Installation installierte.
Dieses Problem tritt auf, weil Pods nicht für alle Ziele gemeinsam genutzt werden. Daher muss ich dem Podfile ein neu hinzugefügtes Ziel ( app.staging ) hinzufügen .
Hier ist mein Podfile.
quelle
Ich erhalte diesen Fehler in jedem neuen Modul, das ich mit create-react-native-module erstelle . Keine der veröffentlichten Lösungen hat bei mir funktioniert.
Was für mich funktioniert hat, war zunächst sicherzustellen, dass es
yarn
im neu erstellten Modulordner ausgeführt wird, um es zu erstellennode_modules/
(dieser Schritt ist wahrscheinlich offensichtlich). Wählen Sie dann in XCode Produkt -> Schema -> Reagieren anstelle der Standardauswahl von MyModuleName.quelle
pod install
. create-react-native-module scheint dies nicht für Sie zu tun. Habe mich für eine Weile aufgelegt. Dies funktionierte jedoch für mich, nachdem ich eine gültige Poddatei erstellt und die Installation ausgeführt hatte.Gehen Sie in Ihrem Projekt zum iOS-Ordner und installieren Sie pod -
Wenn bei der Installation des Pod-Typs ein Fehler auftritt, geben Sie Folgendes ein:
Das Ergebnis sollte - /Applications/Xcode.app/Contents/Developer sein
Wenn der Pfad falsch ist, öffnen Sie Ihr iOS-Projekt in Xcode und gehen Sie zu: Xcode-> Einstellungen-> Befehlszeilentools-> Wählen Sie Xcode aus
Und installieren Sie den Pod erneut. Ihr Problem wird behoben.
quelle
Der Vorschlag von anhdevit in https://github.com/facebook/react-native/issues/24363#issuecomment-488547280 hat für mich funktioniert:
In your terminal, run: defaults delete com.apple.dt.Xcode
quelle
Wenn Sie es von Ihrem Editor aus erstellen möchten, öffnen Sie auch SMobile.xcscheme
Und ändern
parallelizeBuildables = "NO"
quelle
Für mich hat keine der oben genannten Lösungen funktioniert und unten ist es, was funktioniert hat (ich hatte bereits ausgecheckt
Parallelize Build
und hinzugefügtReact
)quelle
Ich habe dieses Problem beim Upgrade von 0.58.4 auf die neue reaktionsnative Version 0.60.4 festgestellt. Nichts von dem, was ich im Internet gefunden habe, hat mir geholfen, aber ich habe es geschafft, es zum Laufen zu bringen:
Gehen Sie zu Build Settings, suchen Sie nach 'Header Search Paths', wählen Sie den Eintrag aus und drücken Sie die DELETE-Taste.
Ich hatte diese Werte überschrieben und es sieht so aus, als wären sie nach dem Löschen auf die Standardeinstellungen zurückgefallen. Auch Cocoapods beschwerte sich darüber mit Nachrichten im Terminal nach
pod install
:quelle
Ich bin auf dieses Problem
react-native link
gestoßen, nachdem ich ein Handbuch zu einer Abhängigkeit erstellt hatte, die die automatische Verknüpfung auf RN 0.59+ nicht unterstützteDie Lösung bestand darin, die xcodeproj-Datei im Ordner Libraries in Xcode auszuwählen und dann in den Build-Einstellungen die Header-Suchpfade zu ändern, um diese beiden (rekursiv) hinzuzufügen:
quelle
Wenn Sie Parallelise Build aktiviert lassen und die fehlenden Headerprobleme vermeiden möchten, geben Sie in Ihrem Schema einen Vorbereitungsschritt an, um die Reaktionsheader in den Bereich für abgeleitete Daten zu verschieben. Beachten Sie, dass die Build-Einstellungen in diesem Fall aus dem React-Projekt stammen. Ja, es ist keine Sache von Schönheit, aber es erledigt die Arbeit und spart auch viel Zeit für die Builds. Die Ausgabe des Prebuild-Schritts endet in prebuild.log. Die genauen Header, die Sie kopieren müssen, hängen von den reaktionsabhängigen Abhängigkeiten Ihres Projekts ab.
Rufen Sie das abgeleitete Datenverzeichnis aus den Umgebungsvariablen ab und kopieren Sie die erforderlichen Reaktionsheader.
Das Skript wird während einer Build-Bereinigung aufgerufen - was nicht ideal ist. In meinem Fall gibt es eine env-Variable, die sich ändert, sodass ich das Skript während einer Bereinigung vorzeitig beenden kann.
quelle
Sie müssen nur pod installieren, wenn Pod-Datei existiert, geben Sie einfach ein
wenn nicht: also zuerst
dann,
im Terminal. und du bist gut zu gehen.
quelle
Was Sie tun können, um es richtig zu machen, ist:
1)
npm uninstall reat-native-fs
Bibliothek deinstallieren2)
npm unlink react-native-fs
um die Verknüpfung der Bibliothek aufzuhebenJetzt wurde die Bibliothek erfolgreich entfernt und jetzt installieren Sie die Bibliothek erneut in Ihrem Projekt und verknüpfen Sie diesmal alles manuell. Manchmal verursacht die automatische Verknüpfung diesen Fehler.
quelle