2016-02-18 21 views
39

Vengo allo sviluppo React Native senza precedenti esperienze di sviluppo iOS. Voglio costruire il file .IPA di rilascio - idealmente dalla riga di comando, ma la documentazione ufficiale Running On Device è molto breve.Come creare .IPA per React Native?

Sono stato in grado di distribuire l'applicazione sul mio iPhone manualmente tramite XCode, ma ancora non riesco a trovare alcun file "release IPA". Ho aggiornato il mio codice con le direttive #ifdef DEBUG per renderlo più generico.

C'è un modo per creare un'applicazione in modalità di rilascio solo tramite riga di comando? Se no, qual è il modo "ufficiale" per generare un'applicazione RN?

Attualmente sto utilizzando RN 0.20.

+0

Eventuali duplicati di [Come costruire e distribuire un'applicazione reagire-nativo da riga di comando?] (Http://stackoverflow.com/questions/32885433/how-to-build-and-deploy- a-react-native-app-from-command-line) –

+0

come ho già detto uso già il trucco '# ifdef'. Sfortunatamente l'altra domanda non menziona come costruirla (tranne che era possibile con 'fastlane'). – sodik

risposta

34

In primo luogo, è necessario creare un pacchetto in questo modo:

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

Quindi, è necessario commentare questa linea in AppDelegate.m:

jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"]; 

e rimuovere questo:

jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 

Quindi devi andare su Prodotto -> Archivia in Xcode e seguire i passaggi in base alla versione desiderata

+1

sai dove nell'archivio posso trovare il file .ipa? – sodik

+0

Una volta archiviato, è possibile salvare il file IPA se ricordo bene. Dalla finestra pop-up che appare quando la compilazione dell'archivio ha esito positivo. –

+0

in XCode 7.2.1 ha appena prodotto la directory con diversi file ma nessun file IPA. – sodik

13

non posso commentare sulla risposta di cui sopra, è corretto, ma è necessario iniziare con il seguente comando in modo per farlo funzionare:

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

la differenza è 'ios' invece di 'iOS'

se non darà il seguente errore:

ProjectPath/node_modules/promise/lib/done.js:10 
    throw err; 
^
+0

A quale risposta stai rispondendo? "sopra" è relativo –

13

è necessario impostare Schema di rilascio.

Da documenti hai due modi.

To do this, go to Product → Scheme → Edit Scheme (cmd + <), make sure you're in the Run tab from the side, and set the Build Configuration dropdown to Release.

o

You can also use the React Native CLI to perform this operation using the option --configuration with the value Release (e.g. react-native run-ios --configuration Release).

Quindi è possibile generare il vostro archivio come al solito.

https://facebook.github.io/react-native/docs/running-on-device.html#building-your-app-for-production

+4

Questa è la risposta corretta corretta, le altre sono vecchie – jperelli