web-dev-qa-db-de.com

Wie kann ich den ios Ordner in React Native project neu generieren?

Vor einiger Zeit habe ich das/ios-Verzeichnis in meiner reaktiven nativen App gelöscht (nennen wir es X). Ich habe mit dem Emulator Android) entwickelt und getestet, aber jetzt möchte ich sicherstellen, dass es auf ios mit dem Xcode-Simulator usw. funktioniert.

Meine derzeitige Idee ist es, ein neues natives Bare-Projekt (nennen wir es Y) mit dem Ordner ios zu erstellen. Befolgen Sie dann diese Schritte , um Y umzubenennen, sodass es den Namen X hat, und verschieben Sie dann das Symbol /. IOS-Verzeichnis von Y nach X und versucht, 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 vorhandenem hinzufügen ..' und nichts hilfreiches. Vielleicht ist mein googlefu nicht gut genug, aber wenn jemand irgendwelche Vorschläge hat, sehr geschätzt.

Schritt 2 wird sicherstellen, dass es aufgrund von Abhängigkeiten und anderen Dingen kompiliert wird. Mein Ziel ist es jedoch, den Ordner/ios erst einmal wieder in das Projekt aufzunehmen und React Native, um sich dessen Existenz bewusst zu sein ( es hat alle notwendigen config).

Vielen Dank

56
Tam Borine

Der Vorgang, den Sie ausführen müssen, ähnelt dem Umbenennen einer reaktiven nativen App. Grundsätzlich müssen Sie nur react-native upgrade In Ihrem Root-Projektverzeichnis ausführen. Für weitere Informationen können Sie eine andere Frage überprüfen hier . In den folgenden Anweisungen wird erläutert, wie Sie ein anderes reaktionsorientiertes Projekt auf der Grundlage eines kopierten Projekts mit einem neuen Namen erstellen.

  • Kopieren Sie zunächst das Verzeichnis, in dem sich Ihre Anwendung befindet, deren Name geändert werden soll. Und gehen Sie zu Ihrem neu geklonten Verzeichnis.
  • Ändern Sie den Namen in der Datei index.ios/Android.js, Die als Parameter für AppRegistry angegeben wird.
  • Ändern Sie den Namen und die Version entsprechend auf package.json
  • Löschen Sie die Ordner /ios Und /Android, Die noch in Ihrer älteren App vorhanden sind.
  • Führen Sie $react-native upgrade Aus, um die Ordner /ios Und /Android Erneut zu generieren.
  • Führen Sie $react-native link Für native Abhängigkeiten aus.
  • Führen Sie schließlich $react-native run-ios Oder irgendetwas aus, was Sie wollen.
99
milkersarac

Entfernen/löschen Sie einfach Android und ios (Backup Android und ios-Ordner)) 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.59.10
        react-native-cli >= 1.3.0 

Ref: Link

40
Khurshid Ansari

Beachten Sie, dass Sie ab reag-native 0.60.x Folgendes verwenden können, um ios/Android-Verzeichnisse neu zu erstellen:

react-native upgrade --legacy true

Gutschrift hier: https://github.com/facebook/react-native/issues/25526

15

Dies ist zu spät, aber für alle, die immer noch dasselbe Problem haben und eine nicht verbundene native App haben, habe ich exp detach über meine nicht verbundene App ausgeführt und den ios-Ordner erstellt!

2
Mizlul

Wie @Alok in den Kommentaren erwähnt, können Sie react-native eject, um die Ordner ios und Android zu generieren. Aber du brauchst ein app.json zuerst in Ihrem Projekt.

{"name": "example", "displayName": "Example"}
2
aleclarson

Da das reaktionsnative Auswerfen in 60.3 abgeschrieben ist und ich Diff-Fehler beim Versuch hatte, das Formular 60.1 auf 60.3 zu aktualisieren, funktionierte die Neuerstellung des Ordners Android) nicht.

Ich musste

rm -R node_modules

Dann aktualisiere reag-native in package.json auf 59.1 (entferne package-lock.json)

Lauf

npm install

react-native eject

Dadurch werden Ihre Ordner Android und ios wiederhergestellt. Führen Sie schließlich ein Upgrade auf 60.3 durch

react-native upgrade

reactive-Native-Upgrade in der Vergangenheit und 59.1 haben meinen Ordner Android) nicht neu generiert, sodass der Auswurf erforderlich war.

0
Paul Gehrke

Ich habe mich gerade auch mit diesem Problem befasst, es aber gerade gelöst.

Beim Ausführen des Befehls "Native-Aktualisierung reagieren" wurde die Meldung ausgegeben, dass keine Aktualisierung erforderlich war, oder mit dem Befehl "Native-Auswerfen reagieren", dass der Befehl nicht erkannt wurde.

reactive-Native-Upgrade

Jetzt sollten Sie den Befehl "Natives Upgrade - Legacy True" verwenden, um Ihre Android ios) -Ordner zu sichern, da dieser Befehl Ihre Dateien ersetzt.

reagierendes natives Upgrade - Legacy true

Jetzt heißt es nur, dass Sie Ihre package.json nicht ersetzen sollen

0
Manju Priya