2015-06-07 6 views

risposta

17

Quando si avvia un'applicazione reagire nativo si vedrà questa uscita messaggio dal React Packager:

Running packager on port 8081 

e poi:

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


React packager ready. 

A questo punto, il confezionatore ha compilato la tua File JS e li sta servendo con l'estensione .js rinominata in .bundle. Ad esempio, il file di index.io.js viene compilato e servita dalle:

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

Se si è aggiunto un altro file foo.js nella stessa directory index.ios.js, il packager potrebbe servire da:

http://localhost:8081/foo.bundle 

È possibile confermare questo aprendo l'URL nel tuo browser.

Ora per rispondere alla tua domanda, il progetto ha un file iOS/AppDelegate.m con the following line:

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

... come si può vedere, si carica il index.ios.bundle. È possibile modificare il percorso/nome del file lì per quello che vuoi, ma probabilmente è meglio attaccare con l'approccio consigliato di chiamare il vostro file di ingresso index.io.js

+0

che dire di quando si utilizza [fascio offline] (https://facebook.github.io/react-native/docs/running-on-device-ios.html # utilizzando-offline-bundle)? ** modifica: ** non importa, ho capito ... fare la stessa cosa ma in 'node_modules/react-native/packager/react-native-xcode.sh' –

5

Supponiamo hai spostato il tuo index.ios.js in una cartella chiamata dist. Hai bisogno di fare due cose

  1. Per il vostro ambiente di sviluppo: Aggiornamento jsBundleURLForBundleRoot in AppDelegate.m per abbinare il vostro percorso aggiornato.

  2. Per il pacchetto di versioni: Aprire il progetto Xcode. Dovrai aggiornare il codice Bundle React Native e le immagini sotto Fasi di costruzione per il tuo progetto. Aggiornare lo script di shell in questa sezione per guardare come di seguito:

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

    react-native-xcode.sh accetta il ENTRY_FILE come primo argomento facoltativo, inadempiente a index.ios.js se non viene trovato.

    Updated Build Phases Example

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

+1

Grazie per l'assistenza. Questo è necessario dopo il passaggio a TypeScript poiché il file index.ios.js viene spostato in una directory di risorse utente. – huntharo

+0

Ciao @abhishek, sto usando Typescript e ho cambiato il mio script al seguente, ma ancora non riesco a trovare il file di ingresso. Qualche idea? esportazione NODE_BINARY = nodo /artifacts/index.ios.js ../node_modules/react-native/scripts/react-native-xcode.sh attesi percorso '/ artefatti/index.ios.js' di essere parente a una delle radici del progetto – ofer2980

+0

, potrei sbagliarmi ma la barra principale potrebbe causare la mancata risoluzione del percorso in Xcode. Provalo senza la barra principale 'artefacts/index.ios.js'. –

Problemi correlati