2015-06-07 16 views

Antwort

17

Wenn Sie eine reagieren-native App starten Sie diese Meldung ausgegeben durch die Reaktion Packager sehen werden:

Running packager on port 8081 

und dann:

Looking for JS files in 
    /Users/gbirman/gil/mapily 


React packager ready. 

Zu diesem Zeitpunkt hat der Verpacker zusammengestellt Ihre JS-Dateien und versorgt sie mit der .js Erweiterung umbenannt in .bundle. Zum Beispiel Ihre index.io.js Datei kompiliert und serviert von:

http://localhost:8081/index.ios.bundle 

Wenn Sie eine andere Datei foo.js im selben Verzeichnis wie index.ios.js hinzugefügt, würde der Verpacker aus dienen:

http://localhost:8081/foo.bundle 

Sie dies bestätigen können, indem Sie diese URL in Ihrem Browser öffnen.

Jetzt ist Ihre Frage, Ihr Projekt hat eine iOS/AppDelegate.m Datei mit the following line zu beantworten:

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle"]; 

... wie Sie sehen können, lädt es die index.ios.bundle. Sie können den Pfad/Dateinamen dort ändern, was auch immer Sie wollen, aber es ist wahrscheinlich am besten mit dem empfohlenen Ansatz halten Ihren Eintrag Datei index.io.js

+0

was bei Verwendung von [Offline-Paket] (https://facebook.github.io/react-native/docs/running-on-device-ios.html # using-offline-bundle)? ** edit: ** egal, ich habe es herausgefunden ... mach das selbe aber in 'node_modules/react-native/packager/react-native-xcode.sh' –

5
Namensgebung

Angenommen, Sie haben Ihre bewegt index.ios.js in einen Ordner namens dist. Sie müssen zwei Dinge tun

  1. Für Ihre Entwicklungsumgebung: aktualisieren jsBundleURLForBundleRoot in AppDelegate.m Ihre aktualisierten Pfad anzupassen.

  2. Für Ihr Release-Paket: Öffnen Sie Ihr Xcode-Projekt. Sie müssen die Bundle React Native Code und Bilder Task unter Build-Phasen für Ihr Projekt aktualisieren. Aktualisieren Sie den Shell-Skript in diesem Abschnitt schauen, wie unten:

    export NODE_BINARY=node ../node_modules/react-native/packager/react-native-xcode.sh dist/index.ios.js

    react-native-xcode.sh die ENTRY_FILE als optionales erstes Argument akzeptiert, säumigen zu index.ios.js wenn keiner gefunden wird.

    Updated Build Phases Example

    Reference - react-native/scripts/react-native-xcode.sh

+1

Danke für die Unterstützung. Dies ist erforderlich, nachdem Sie zu typeScript gewechselt haben, da die Datei index.ios.js in ein Artefakte-Verzeichnis verschoben wird. – huntharo

+0

Hallo @abhishek, ich benutze Typescript, und ich änderte mein Skript in den folgenden, aber es kann immer noch nicht die Eintragsdatei finden. Irgendeine Idee? Export NODE_BINARY = Knoten ../node_modules/react-native/scripts/react-native-xcode.sh /artifacts/index.ios.js Erwartete Pfad '/ Artefakte/index.ios.js' relativ zu sein zu einer der Projektwurzeln – ofer2980

+0

Ich könnte falsch liegen, aber der führende Schrägstrich verursacht möglicherweise Ihren Pfad nicht in Xcode auflösen. Versuchen Sie es ohne den führenden Schrägstrich 'artifacts/index.ios.js'. –

Verwandte Themen