Vor einiger Zeit habe ich das Verzeichnis / ios in meiner nativen App gelöscht (nennen wir es X). Ich habe mit dem Android-Emulator entwickelt und getestet, aber jetzt möchte ich sicherstellen, dass es auf iOS mit Xcode-Simulator usw. funktioniert.
Meine aktuelle Idee ist es also, ein neues natives Projekt zu erstellen (nennen wir es Y) mit dem Ordner ios. Befolgen Sie dann diese Schritte , um Y so umzubenennen, dass es den Namen X hat, und verschieben Sie dann das Verzeichnis / ios von Y nach X und versuchen zu run-ios
.
Ich werde hier aktualisieren, wie das geht, aber ich habe mich gefragt, ob es einen besseren Weg gibt und war noch niemand in dieser Situation?
Ich habe viele Dinge gegoogelt, "iOS-Ordner neu generieren", "iOS-Ordner gelöscht", "iOS-Ordner zu vorhandenen hinzufügen" und nichts Hilfreiches. Vielleicht ist mein GoogleFU nicht gut genug, aber wenn jemand irgendwelche Vorschläge hat, sehr geschätzt.
In Schritt 2 wird sichergestellt, dass es aufgrund von Abhängigkeiten und anderen Dingen kompiliert wird. Im Moment ist es jedoch mein Ziel, den Ordner / ios wieder in das Projekt aufzunehmen und React Native über seine Existenz zu informieren (es verfügt über alle erforderlichen Konfigurationen).
Vielen Dank
quelle
react-native upgrade
, es sollte durch ersetzt werdenreact-native-git-upgrade
.react-native upgrade
ist nur, Ordner neu zu generieren/ios
und zu/android
projizieren. Änderungen / Aktualisierungen / Upgrades reagieren nicht auf die native Version, wie der Name andeutet. Ich sehe diesreact-native-git-upgrade
jedoch als angemessener an, wenn Sie die native Reaktionsversion Ihres Projekts ändern möchten.index.ios/android.js
. Hilf mir, es zu finden. Vielen DankEntfernen / löschen Sie einfach Android und iOS (behalten Sie den Ordner für Android und iOS) und führen Sie den folgenden Befehl aus:
react-native eject Supported version : react-native <= 0.59.10 react-native-cli <= 1.3.0 react-native upgrade --legacy true Supported version : react-native >= 0.60.0 react-native-cli >= 2.1.0
Ref: Link
quelle
react-native upgrade
(oderreact-native-git-upgrade
) beide haben bei mir nicht funktioniert. Einfach laufenreact-native eject
hat perfekt funktioniert. Vielen Dank!react-native eject
scheint ab React Native 0.60 entfernt worden zu sein. Meinereact-native-cli
ist Version2.0.1
.upgrade --legacy
scheint auch entfernt zu sein.error: unknown option --legacy
npx react-native init YourProjectName
Beachten Sie, dass Sie ab reaktionsnativem 0.60.x Folgendes verwenden können, um ios / android-Verzeichnisse neu zu generieren:
react-native upgrade --legacy true
Gutschrift hier: https://github.com/facebook/react-native/issues/25526
quelle
react-native upgrade 0.59.10 --legacy true
error: unknown option '--legacy'
Wie @Alok in den Kommentaren erwähnt, können Sie
react-native eject
die Ordnerios
und generierenandroid
. Aber Sie brauchen zuerst eineapp.json
in Ihrem Projekt.{"name": "example", "displayName": "Example"}
quelle
react-native init
. Ein Popup - Frage, was würden Sie tun , wennios
undandroid
Ordner gelöscht werden , nachdem Sie bereits Ihr Projekt ausgestoßen?react-native eject
funktioniert auch, wenn das Projekt nicht mit CRNA erstellt wird❯
react-native eject
❯
react-native upgrade --legacy true
Sie können ein neues Projekt mit demselben Namen in einem anderen Ordner initiieren und ios dir über Folgendes kopieren:
im Verzeichnis YourProjectName
npx react-native init YourProjectName mv YourProjectName/ios ios rm -rf YourProjectName
Stellen Sie sicher, dass Sie einen sauberen Git-Verlauf haben, bevor Sie dies tun, falls Sie zurückkehren müssen
quelle
Dies ist zu spät, aber für alle, die immer noch das gleiche Problem haben und eine abgetrennte native Reaktion haben, habe ich exp separate über meine abgetrennte App ausgeführt und einen ios-Ordner erstellt!
quelle
Wie es scheint
react-native eject
nicht mehr verfügbar zu sein. Die einzige Möglichkeit, den ios-Ordner neu zu erstellen, bestand darin, ihn von Grund auf neu zu generieren.Erstellen Sie eine Sicherungskopie Ihres iOS-Ordners
Navigieren Sie zu einem temporären Verzeichnis und erstellen Sie ein neues Projekt mit demselben Namen wie Ihr aktuelles Projekt
react-native init project_name mv project_name/ios /path_to_your_old_project/ios
Installieren Sie die Pod-Abhängigkeiten im ios-Ordner Ihres Projekts
cd /path_to_your_old_project/ios pod install
quelle
Da reaktionsnatives Auswerfen in 60.3 abgeschrieben wird und ich beim Versuch, Form 60.1 auf 60.3 zu aktualisieren, Diff-Fehler bekam, funktionierte die Regenerierung des Android-Ordners nicht.
Ich musste
Aktualisieren Sie dann react-native in package.json auf 59.1 (entfernen Sie package-lock.json).
Lauf
npm install react-native eject
Dadurch werden Ihre Android- und iOS-Ordner neu generiert. Aktualisieren Sie schließlich wieder auf 60.3
react-native upgrade
React-Native Upgrade während zurück und 59.1 hat meinen Android-Ordner nicht neu generiert, so dass das Auswerfen notwendig war.
quelle
Wenn Sie mit Fehlern wie dem nicht gefundenen Modul verloren gehen, gibt es heutzutage eine andere als die folgende Methode, wenn Sie die native CLI-Reaktion verwendet haben. Ich hatte ein ähnliches Problem, als ich das xcode-Projekt aus der .xcodeproj- Datei anstelle von .xcworkspace geöffnet habe . Bitte beachten Sie auch, dass reaktionsnatives Auswerfen nur für Expo-Projekte gilt.
Die einzige Problemumgehung, um iOS- und Android-Ordner innerhalb eines reaktiven nativen Projekts neu zu generieren, ist die folgende.
Jetzt sollte Ihr Problem gelöst sein
quelle
Ich habe mich gerade auch mit diesem Problem befasst, aber ich habe es gerade gelöst.
Sicherlich gab es beim Ausführen des Befehls "React-Native Upgrade" die Meldung, dass keine Aktualisierung erforderlich war, oder mit dem Befehl "React-Native Eject", dass der Befehl nicht erkannt wird.
react-native upgrade
Jetzt sollten Sie den
react-native upgrade --legacy true
Befehl verwenden, um Ihre Android-Ordner oder iOS zu sichern, da dieser Befehl Ihre Dateien ersetzen wird.react-native upgrade --legacy true
Jetzt heißt es nur, dass Sie Ihre package.json nicht ersetzen sollen
quelle
PS: Sichern Sie Ihren Code, falls er App.js ändert
quelle
Ich hatte das gleiche Problem in der reaktiven nativen .63-Version. Ich habe vor allem Methoden ausprobiert, aber nicht funktioniert. Also habe ich wie folgt versucht, Android / iOS-Ordner in meinem alten Projektbaum zu löschen und ein neues Projekt mit ähnlichem Namen in einem anderen Ordner zu initiieren, später Android / iOS-Ordner vom neuen Projekt in das alte Projekt zu kopieren und den Cache mit dem reaktionsnativen Start zurückzusetzen - Cache zurücksetzen und React-Native Run-Android ausführen und mein Versuch war erfolgreich.
quelle
Entfernen Sie zuerst den ios-Ordner
react-native eject cd ios/ pod init pod install cd .. react-native link cd ios open *.xcworkspace/
quelle