Kann nicht erstellen Sie offline bundle für react native – (iOS)

Hi ich habe versucht, erstellen Sie eine offline-bundle für reagieren nativen iOS zum testen mit dem folgenden code

react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios

Danach habe ich versucht, um die app auszuführen mit dem Befehl react-native run-ios --configuration=release sobald es fertig ist öffnet die app und stürzt sofort ab. So habe ich react-native run-ios dieser Zeit öffnet die app mit der lokalen development-server, wenn ich kündigen, die Entwicklung der server dann werde ich mir Unbehandelte JS Ausnahme Fehler. Für Android ich habe versucht, die folgenden Schritte, um es arbeiten.

  1. mkdir android/app/src/main/assets
  2. react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
  3. react-native run-android

Selbst wenn ich kündigen, die lokalen Entwicklungs-server, die app funktioniert bei Android. Jede Hilfe für den Bau offline bundle für iOS ist geschätzt.

Edit 1:

Nach Bündelung für iOS mit dem Befehl

react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios

Ich bin in der Lage, zu generieren main.jsbundle innerhalb iOS-Verzeichnis und dann befolgt die folgenden Schritte.

  1. Entfernt alle App Transport Security Settings und Hinzugefügt Allow Arbitrary Loads(true) innen Info.plist Datei.

  2. Bearbeitet die Ausführen, Bearbeiten Schema zu Release

  3. Geändert jsCodeLocation von

    jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@“index“ fallbackResource:nil];

zu

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
  1. Produkt -> Bauen

Nachdem Sie die obigen Schritte, ich bin immer der folgende Fehler

File /Users/jeffreyrajan/Library/Developer/Xcode/DerivedData/app_prod-fnewtufemaynsoedmhggmfjynoti/Build/Products/Release-iphonesimulator/app_prod.app/main.jsbundle does not exist. This must be a bug with
+ echo 'React Native

Hier ist der screenshot der gesamten Fehlermeldung
Kann nicht erstellen Sie offline bundle für react native - (iOS)

Hier ist die Projekt-Struktur

Kann nicht erstellen Sie offline bundle für react native - (iOS)

Aktuelle Version:

  • Reagieren : 16.0.0
  • Reagieren Native : 0.51.0
  • Xcode:9.2
  • Sie können sehen, dass die javascript-build schlägt fehl, weil Cannot find module /users/jeffreyrajan/Projects/React-Native. Gegeben, dass Ihr JS baut die Arbeit im dev-Modus, dies ist wahrscheinlich ein Problem mit Babel oder der U-Bahn bundler nicht auflösen-Modul Dateipfade korrekt. Sind Sie mit einer benutzerdefinierten Babel plugins oder U-Bahn-Transformatoren?
  • Nein @jevakallio ich bin nicht mit jeder benutzerdefinierte Babel plugins oder U-Bahn-Transformatoren, dies ist ein Beispiel-Projekt mit nur der Standard-code
InformationsquelleAutor Jeffrey Rajan | 2018-01-11



One Reply
  1. 5

    Scheint es, dass das build-Skript läuft, dass der bundler-Befehl funktioniert nicht mit Leerzeichen in Datei-Pfade korrekt. Ich sehe aus dem screenshot, den Sie geschrieben, dass Sie den Pfad zu Ihrem Projekt enthält ein Leerzeichen in der React-Native Projects – Verzeichnis.

    Wenn Sie das Verzeichnis umbenennen, z.B. React-Native-Projects, Archiv build wird ordnungsgemäß funktionieren.

    Im Allgemeinen, es ist ein guter Entwickler, die Praxis zu begrenzen, Verzeichnis-und Datei-Namen, um alphanumerische Zeichen, weil viele Unix-tools erfordern Flucht andere Charakter-Typen.

    • Vielen Dank @jevakallio dies hat mir geholfen, um das Problem zu lösen, aber ich Frage mich immer noch, warum es funktionierte für Android.
    • Das problem war nicht die eigentliche Metro Bündelung Schritt, aber in die shell-Skript xcodebuild verwendet zum aufrufen der bundler. Auf Android, der Aufbau erfolgt wie ein Gradle task, also das shell-Skript wird nicht benötigt. Die ich eingereicht habe, eine PR Reagieren Nativen um dies zu beheben: github.com/facebook/react-native/pull/17628

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.