Ich versuche, meine React Native-App in XCode auszuführen, und ich erhalte diesen Fehler ständig. Ich kann nicht herausfinden, wie ich das Problem lösen kann. Irgendwelche Vorschläge?
Screenshot des Fehlers in XCode:
Löschen Sie Knotenmodule, führen Sie npm install
(oder besser noch gar Garn) aus und starten Sie nach Abschluss des Downloadens react-native upgrade
, wodurch Sie die Möglichkeit haben, alte Dateien durch Vorlagen zu ersetzen. native, die Ihr Problem beheben sollte. Vergessen Sie natürlich nicht, Ihr Projekt in Xcode zu säubern.
xcode Product-> Scheme-> Manage Schemes Klicken Sie am Ziel auf "+", um "React" auszuwählen, und legen Sie fest, dass das React gemeinsam genutzt wird.
Bei allen, die React Native 0.40.0 oder höher verwenden, wurde bei Header-Importen eine wesentliche Änderung von RN 0.40.0 vorgenommen, was zu vielen nicht gefundenen Fehlern der .h-Datei führt. react-native-git-upgrade
hat das Problem für mich während des Debugging behoben, der Build schlägt jedoch in Release/Archiv fehl.
Ich benutze RN 0.42.3 mit Cocoapods und Xcode 8.2.1
Um dies vollständig zu beheben, gehen Sie zu Xcode> Product> Scheme> Edit Scheme>
Bereinigen Sie jetzt das Projekt und bauen Sie
Keiner der anderen Vorschläge hat meinen Fehler behoben, aber dieser hat es getan.
Erstellen Sie in Ihrer reagierenden Anwendung eine Datei mit dem Namen ios/Podfile
mit folgendem Inhalt:
# 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 verschwunden sein.
Nach meinem ersten Versuch, einen React-Build in XCode auszuführen, bin ich auf dieses Problem gestoßen, und alles, was ich tun musste, war tatsächlich zu bauen und auszuführen, damit der Fehler behoben wurde (nachdem ein Team ausgewählt und die Bereitstellung ordnungsgemäß vorgenommen wurde). Manchmal zeigt XCode Fehler, die nicht wirklich fehlerhaft sind, bis sie beim ersten Mal kompiliert und verknüpft werden.
Ich habe dieses Problem durch folgende Schritte gelöst:
React.xcodeproj
von Libraries
in den Stamm des Projekts.SaleKit
auf den Projektnamen (in meinem Fall TARGETS
).Build Phases
Target Dependencies
add React
Für meinen Fall in React Native "0.54.2" habe ich es mit folgender Lösung gelöst
Wählen Sie in Xcode Product->Scheme->Manage Schemes
aus, und deaktivieren Sie das Kontrollkästchen "Your Project"
Die Lösung, die für mich funktioniert, ist, das React
-Schema zu teilen.
Wenn Sie kein Reaktionsschema haben, erstellen Sie ein neues mit Selecting scheme menu -> Manage Scheme -> + -> choose React
und markieren Sie das Reaktionsschema als "Shared"
Wenn Sie Xcode 10 verwenden, wechseln Sie zu File -> Project Settings
und wählen Sie Legacy Build System aus
Führen Sie npm install
in Ihrem Projektverzeichnis aus, um react-native
zu installieren, der diesen Fehler behebt.
Möglicherweise führen Sie nach der Installation des Pods eine .xcodeproj
-Datei aus.
Schließen Sie es und öffnen Sie die .xcworkspace
-Datei. Es hat für mich funktioniert.
Versuche Folgendes:
Ich hatte das gleiche Problem und habe es behoben, indem ich RNFIRMessaging.h über dem React/RCTBundleURLProvider.h platzierte.
So sehe ich aus:
#import "AppDelegate.h"
#import "RNFIRMessaging.h"
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
klicken Sie auf Produkt-> Schema-> Schemas verwalten -> +. und dann als getauscht reagieren. Stellen Sie außerdem sicher, dass auch Ihr Projektname vorhanden ist.
Ich stand vor demselben Problem. Dann habe ich den Knoten .Try gelöscht, um diese Schritte zu verwenden
dann bauen und sehen
Beste Lösung :
Öffnen Sie 'Build Settings' für Ihr Projekt in Xcode und suchen Sie nach 'Header Search Path'.
Doppelklicken Sie neben "Header Search Path" (Header-Suchpfad), wo andere Eigenschaften "yes" oder "no" haben.
Fügen Sie dem "Header Search Path" (unter Build Settings) nun Folgendes hinzu:
$ (SRCROOT) /../ node_modules/reactative/React $ (SRCROOT) /../ node_modules/reactative/React/Base Nicht vergessen Machen Sie beide rekursiv.
Ich habe festgestellt, dass mein Update für dieses Problem nach dem Upgrade von React war, die Deklaration von #import "RCTBundleURLProvider.h"
in #import <React/RCTBundleURLProvider.h>
zu ändern
Ich habe alle Vorschläge ausprobiert und keiner von ihnen hat an dem gearbeitet. Ich habe das Repo gelöscht und es erneut geklont und die Arbeit für mich, daher ist mein Vorschlag, Ihre Änderungen zu sichern und das Repo erneut zu klonen, das für mich funktioniert hat.
Im Basisverzeichnis des Projekts führe ich 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 Packagerprozess ausgeführt wird.
Ich fand den Prozess mit:
lsof -i :8081
Dann kill 9 ...
der Prozess.
Nachdem ich Xcode geschlossen habe, führe Folgendes aus:
npm install
Und startete Xcode erneut, ab diesem Moment klappte alles wie erwartet !!
Wenn Sie npm install
nicht ausgeführt haben, wird dieses Problem wahrscheinlich auftreten.
Ich habe alle oben genannten Antworten durchgelesen.
Hier ist die Lösung für mich gearbeitet:
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 '$(SRCROOT)/../node_modules/react-native-fcm/ios'
zu .__ hinzufügen. Header-Suchpfade in den Build-Einstellungen.
Diese 2 Schritte funktionierten für mich, um den Fehler zu beheben.
Für weitere Details können Sie diese Links durchgehen: