2016-06-14 12 views
1

私はいくつかのコードを書いており、物事はシミュレータ上でうまくいく。 そして、私はデバイスで実行する方法に関する公式文書をチェックしました。react-nativeアプリを実際のデバイスでオフラインバンドルで実行するにはどうすればよいですか?

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

そして、彼らは「静的を

を言う:

1は、コメントを外し、AppDelegate.m

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

2に、この行をコメント:これは私がやっていることです実際のデバイスでプロジェクトを実行しているときに "Bundle React Native code and images"ビルドステップによってバンドルが自動的に生成されます。

「実行」をクリックすると、「connect refused」という赤い画面が表示されました。 プロジェクトのmain.jsbundle ISを確実にするために、curlコマンドを使用して手動で生成します。 しかし、まだそこにエラー:

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

時間グーグルではなく、何の助けを得ませんでした。

答えて

0

シェイプをリリースに変更します。 これは機能します。

しかしデバッグが動作しない理由は何まだ混乱が..です

+0

リリースするスキームを変更すると、jscode全体がコンパイルされ、メインバンドルで使用できるようになります。だからそれはオフラインで動作する方法です。デバッグでは、localhost:8081に行きます。そのため、動作しません。デバッグでも、ur jscodeをコンパイルしてプロジェクトに追加すると可能です。 –

0

あなたが解放するスキームを変更すると、全体jscodeをコンパイルし、メインバンドルにそれを利用できるようになるだろう。だからそれはオフラインで動作する方法です。デバッグでは、メインバンドルにコンパイルされたJSCodeがないため、localhost:8081になります。それがうまくいかない理由です。デバッグでも、ur jscodeをコンパイルしてプロジェクトに追加すると可能です。

関連する問題