2016-06-14 8 views
1

Ich habe etwas Code geschrieben, und die Dinge laufen gut auf Simulator. Und ich überprüfte das offizielle Dokument, wie man auf dem Gerät läuft. Dies ist, was ich getan habe:Wie reagiere native App mit Offline-Bundle im realen Gerät?

1, kommentieren Sie diese Zeile in AppDelegate.m

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

2 Kommentar-:

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

Und sie sagen

‚Die statische Das Paket wird automatisch vom Build-Schritt "Bundle React Native Code and Images" generiert, wenn das Projekt auf einem tatsächlichen Gerät ausgeführt wird.

Ich klickte auf "run", und roter Bildschirm erschien: "Verbindung verweigert". Um sicherzustellen, dass der main.jsbundle IS im Projekt ist, erzeuge ich ihn manuell mit dem Befehl curl. Aber der Fehler immer noch da:

Websocket connection failed with error ErrorDomain=NSPOSIXErrorDomain Code=61 'connection refused' 

Stunden in googeln, bekam aber keine Hilfe.

Antwort

0

Ändern Sie das Schema in Release. Das funktioniert.

Aber was immer noch verwirrend ist, warum Debug nicht arbeiten ..

+0

Wenn Sie das Schema ändern, wird es den gesamten Jscode kompilieren und im Hauptpaket verfügbar machen. So funktioniert es offline. In Debug wird es zu localhost: 8081 gehen, deshalb funktioniert es nicht. Selbst im Debug ist es möglich, dass Sie ur jscode kompilieren und zu Ihrem Projekt hinzufügen. –

0

Wenn Sie das Schema zur Freigabe zu ändern, es es ganz jscode und machen in Haupt Bündel kompilieren geht. So funktioniert es offline. In Debug wird es zu localhost:8081 gehen, weil in Ihrem Hauptpaket nicht JCode kompiliert wird. deshalb funktioniert es nicht. Selbst im Debug ist es möglich, dass Sie ur jscode kompilieren und zu Ihrem Projekt hinzufügen.

Verwandte Themen