2016-02-18 16 views
39

Ich komme zu React Native Entwicklung ohne vorherige Erfahrung von iOS-Entwicklung. Ich möchte Release .IPA-Datei erstellen - idealerweise von der Befehlszeile, aber die offizielle Dokumentation Running On Device ist sehr kurz.Wie erstellt man .IPA für Native React?

Ich konnte Anwendung auf meinem iPhone manuell über XCode bereitstellen, aber ich kann immer noch keine "Release IPA" -Datei finden. Ich habe meinen Code mit #ifdef DEBUG Richtlinien aktualisiert, um es generischer zu machen.

Gibt es eine Möglichkeit, Anwendung im Freigabemodus nur über die Befehlszeile zu erstellen? Wenn nein, was ist der "offizielle" Weg, eine RN-Anwendung zu generieren?

Ich verwende derzeit RN 0,20.

+0

Mögliches Duplikat von [Wie erstellen und eine reagieren-native App von der Kommandozeile bereitstellen?] (Http://stackoverflow.com/questions/32885433/how-to-build-and-deploy- a-react-native-app-from-command-line) –

+0

wie ich bereits erwähne ich bereits '# ifdef' Trick. Unglücklicherweise erwähnt die andere Frage nicht, wie man es baut (außer dass es mit 'Fastlane' möglich war). – sodik

Antwort

34

Zuerst müssen Sie ein Bündel auf diese Weise erstellen:

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

Dann Sie in AppDelegate.m diese Zeile zu äußern:

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

und Kommentar- diese:

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

Dann müssen Sie für Produkt -> Archivieren in Xcode und folgen Sie den Schritten auf der Grundlage Ihrer gewünschten Version

+1

Wissen Sie, wo im Archiv ich finde .ipa-Datei? – sodik

+0

Sobald Sie archivieren, können Sie Ihre IPA-Datei speichern, wenn ich mich gut erinnere. Aus dem Popup-Fenster, das erscheint, wenn Ihr Archivaufbau erfolgreich ist. –

+0

in XCode 7.2.1 produziert nur Verzeichnis mit mehreren Dateien, aber keine IPA-Datei. – sodik

13

kann ich nicht auf die obige Antwort kommentieren, es richtig ist, aber Sie müssen mit dem folgenden Befehl starten, um für sie zu arbeiten:

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

der Unterschied ist ‚ios‘ anstelle von ‚iOS‘

wenn es nicht den folgenden Fehler geben:

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

Auf welche Antwort antworten Sie? "über" ist relativ –

13

Sie haben Schema einstellen zu lösen.

Von Docs haben Sie zwei Möglichkeiten.

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.

oder

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).

Dann können Sie Ihr Archiv wie gewohnt generieren.

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

+4

Dies ist die korrekte aktualisierte Antwort, die anderen sind alt – jperelli

Verwandte Themen