Ich versuche, meine React Native-App in XCode auszuführen, und es wird immer wieder dieser Fehler angezeigt. Ich kann nicht herausfinden, wie das Problem behoben werden kann. Irgendwelche Vorschläge?
Screenshot eines Fehlers in XCode:
Ich versuche, meine React Native-App in XCode auszuführen, und es wird immer wieder dieser Fehler angezeigt. Ich kann nicht herausfinden, wie das Problem behoben werden kann. Irgendwelche Vorschläge?
Screenshot eines Fehlers in XCode:
Antworten:
Löschen Sie die Knotenmodule, führen Sie sie aus npm install
(oder besser noch garn) und führen Sie nach Abschluss des Downloads react-native upgrade
die Option aus, alte Dateien durch die Vorlagendateien zu ersetzen, indem Sie Ihre nativen Abhängigkeiten in react-native neu verknüpfen sollte Ihr Problem beheben. Vergessen Sie natürlich nicht, Ihr Projekt in Xcode zu bereinigen.
react-native upgrade
erstelle eine Aktionserweiterung und nach dem Ausführen wurden alle meine Build-Einstellungen gelöscht.
xcode Produkt-> Schema-> Schemata verwalten Klicken Sie im Ziel auf '+', um "Reagieren" auszuwählen und festzulegen, dass die Reaktion freigegeben wird.
Für alle, die React Native 0.40.0 oder höher verwenden, haben Header-Importe eine wesentliche Änderung gegenüber RN 0.40.0 und führen dazu, dass viele Fehler in der .h-Datei nicht gefunden wurden. react-native-git-upgrade
Das Problem wurde beim Debuggen behoben, aber der Build schlägt in Release / Archiv fehl.
Ich verwende RN 0.42.3 mit Cocoapods und Xcode 8.2.1
Um dies vollständig zu beheben, gehen Sie zu Xcode> Produkt> Schema> Schema bearbeiten>
Bereinigen Sie nun das Projekt und erstellen Sie es
Keiner der anderen Vorschläge hat meinen Fehler behoben, aber dieser hat es geschafft.
Erstellen Sie eine Datei mit dem Namen ios/Podfile
in Ihrer reaktionsnativen App mit den folgenden Inhalten:
# You Podfile should look similar to this file. React Native currently does not support use_frameworks!
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target '<YOUR_APP_NAME>' do
# Fixes required for pod specs to work with rn 0.42
react_native_path = "../node_modules/react-native"
pod "Yoga", :path => "#{react_native_path}/ReactCommon/yoga"
pod "React", :path => react_native_path, :subspecs => [
'Core',
'RCTActionSheet',
'RCTAnimation',
'RCTGeolocation',
'RCTImage',
'RCTLinkingIOS',
'RCTNetwork',
'RCTSettings',
'RCTText',
'RCTVibration',
'RCTWebSocket'
]
pod 'GoogleMaps' # <~~ remove this line if you do not want to support GoogleMaps on iOS
# when not using frameworks we can do this instead of including the source files in our project (1/4):
# pod 'react-native-maps', path: '../../'
# pod 'react-native-google-maps', path: '../../' # <~~ if you need GoogleMaps support on iOS
end
Führen Sie den Befehl pod install
im ios-Ordner aus.
Starten Sie XCode neu und der Fehler sollte behoben sein.
Ich bin auf dieses Problem gestoßen, nachdem ich zum ersten Mal versucht hatte, einen React-Build in XCode auszuführen, und alles, was ich tun musste, war tatsächlich zu erstellen und auszuführen, damit der Fehler behoben wurde (nachdem ich ein Team ausgewählt und die Bereitstellung ordnungsgemäß durchgeführt hatte). Manchmal zeigt XCode Fehler an, die erst dann wirklich fehlerhaft sind, wenn es beim ersten Mal kompiliert und verknüpft wird.
Die Lösung, die für mich funktioniert, ist zu teilen React
Schema .
Wenn Sie kein Reaktionsschema haben, erstellen Sie ein neues Schema und Selecting scheme menu -> Manage Scheme -> + -> choose React
markieren Sie das Reaktionsschema als freigegeben
Wenn Sie Xcode 10 verwenden, gehen Sie zu File -> Project Settings
und wählen Sie Legacy-Build-System
Ich habe dieses Problem mit den folgenden Schritten gelöst:
React.xcodeproj
ausLibraries
zum Stammverzeichnis des Projekts.SaleKit
)TARGETS
Build Phases
Target Dependencies
hinzufügenReact
Für meinen Fall in ReactNative "0.54.2" habe ich ihn mit der folgenden Lösung gelöst
Product->Scheme->Manage Schemes
Deaktivieren Sie bei der Xcode-Auswahl " YourProject" -tvOS und setzen Sie es auf "Nicht freigegeben"
Beste Lösung :
Öffnen Sie "Build Settings" für Ihr Projekt in Xcode und suchen Sie nach "Header Search Path".
Doppelklicken Sie neben "Header-Suchpfad", wo andere Eigenschaften ein "Ja" oder "Nein" haben.
Fügen Sie nun dem "Header-Suchpfad" (unter Build-Einstellungen) Folgendes hinzu:
$(SRCROOT)/../node_modules/react-native/React
$(SRCROOT)/../node_modules/react-native/React/Base
Vergessen Sie nicht, beide rekursiv zu machen.
Führen Sie npm install
in Ihrem Projektverzeichnis die Installation aus react-native
, um diesen Fehler zu beheben .
Im Basisverzeichnis des Projekts führe ich Folgendes aus:
node_modules/react-native/packager/packager.sh --reset-cache
Was dazu geführt hat:
Scanning 554 folders for symlinks in /Users/..../work/..../react_tutorial/AwesomeProject/node_modules (15ms)
┌────────────────────────────────────────────────────────────────────────────┐
│ Running packager on port 8081. │
│ │
│ Keep this packager running while developing on any JS projects. Feel │
│ free to close this tab and run your own packager instance if you │
│ prefer. │
│ │
│ https://github.com/facebook/react-native │
│ │
└────────────────────────────────────────────────────────────────────────────┘
Looking for JS files in
/Users/..../work/...../react_tutorial/AwesomeProject
Loading dependency graph... ERROR Packager can't listen on port 8081
Most likely another process is already using this port
Run the following command to find out which process:
lsof -i :8081
Ich habe festgestellt, dass der Paketmanager nicht ausgeführt werden kann, wenn ein anderer Packager-Prozess ausgeführt wird.
Ich fand den Prozess ausgeführt mit:
lsof -i :8081
Als ich kill 9 ...
den Prozess.
Nachdem ich Xcode geschlossen habe, führen Sie Folgendes aus:
npm install
Und Xcode wieder gestartet, von diesem Moment an funktioniert alles wie erwartet !!
Ich hatte das gleiche Problem und habe es behoben, indem ich RNFIRMessaging.h über React / RCTBundleURLProvider.h platziert habe
So sehe ich aus:
#import "AppDelegate.h"
#import "RNFIRMessaging.h"
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
Versuche Folgendes:
Klicken Sie auf Produkt-> Schema-> Schemata verwalten -> +. und fügen Sie dann reagieren als freigegeben hinzu. Stellen Sie außerdem sicher, dass auch Ihr Projektname vorhanden ist.
Ich hatte das gleiche Problem, als ich den Knoten .try gelöscht habe, um diese Schritte auszuführen
dann bauen und sehen
Für mich ersetzen
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
durch
#import <RCTBundleURLProvider.h>
#import <RCTRootView.h>
in AppDelegate.m Datei funktioniert.
Wenn Sie nicht ausgeführt npm install
haben, tritt dieses Problem wahrscheinlich auf.
Ich habe alle oben genannten Antworten durchgesehen.
Hier ist die Lösung, die für mich funktioniert hat:
SCHRITT 1:
Lauf:
npm install react-native-fcm --save
Dies führt dazu, dass das Verzeichnis in Ihrem Projekt unter node_modules> react-native-fcm erstellt wird
SCHRITT 2:
Sie müssen den '$(SRCROOT)/../node_modules/react-native-fcm/ios'
Header-Suchpfaden in den Build-Einstellungen hinzufügen .
Diese 2 Schritte haben bei mir funktioniert, um den Fehler zu beheben.
Für weitere Details können Sie über diese Links gehen:
In meinem Fall konnte ich node_modules nicht löschen und neu installieren, und ich konnte es auch nicht tun react-native-git-updgrade
oder react-native upgrade
weil ich auf RN-0.59 bleiben wollte, weil .60 Probleme für meine Abhängigkeiten verursacht.
In jedem Fall fehlte mir die Datei 'React / RCTBundleURLProvider.h'. Ich hatte React bereits in meinen Schemata verfügbar. Es war nicht in meinem Bibliotheksverzeichnis. Ich habe die Build-Einstellungen meines Ziels überprüft .
Innerhalb der Zielabhängigkeiten hatte ich dort auch React.
Ich habe die Zielabhängigkeit "Reagieren" gelöscht und dann erneut hinzugefügt. Bereinigte Build-Ordner, neu erstelltes Projekt. es funktionierte.
Ich verwende React Native 0.61. Ich habe eine Freigabeerweiterung erstellt und habe diesen Fehler erhalten. Ich musste ersetzen:
#import "RCTBundleURLProvider.h"
mit
#import "React/RCTBundleURLProvider.h"
Sie müssen React Native im Terminal-Lauf installieren
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
dann
brew install node
brew install watchman
npm install -g react-native-cli
Quelle:
https://facebook.github.io/react-native/docs/getting-started.html
Stellen Sie sicher, dass der Pfad zu Ihrem Projekt keine Leerzeichen enthält. Nur das Umbenennen von Ordnern und das Löschen von Leerzeichen löst das Problem für mich.