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
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.
index.ios/Android.js
, Die als Parameter für AppRegistry angegeben wird.package.json
/ios
Und /Android
, Die noch in Ihrer älteren App vorhanden sind.$react-native upgrade
Aus, um die Ordner /ios
Und /Android
Erneut zu generieren.$react-native link
Für native Abhängigkeiten aus.$react-native run-ios
Oder irgendetwas aus, was Sie wollen.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
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
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!
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"}
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.
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