web-dev-qa-db-ja.com

実行中のiOSデバイスでLive Reloadを有効にする方法React Native app?

ライブ再読み込みモードを有効にしようとしていますが、開発メニューにそのような項目はありません: no item called 'Live Reload'

18
protspace

この問題は、主にデバイスと開発マシンが同じLANにないために発生します。かどうかを確認してください。コンピューターとデバイスが保存LANに接続されていることを確認してください。すべて問題ありません。

結局、同じLANに接続されているurデバイス。そして、あなたがXcodeを使用している場合。

  1. Reactネイティブパッケージャを閉じる(または単にターミナルウィンドウを閉じる)
  2. IOSデバイスでアプリを削除する
  3. Xcodeプロジェクトをクリーンアップします。
  4. コマンドnpm start -- reset-cacheを実行します

その後、すべてがOKになります。

19
Bruce Lee

AppDelegateからjsCodeLocationのソースを編集する必要があります。

主な問題は

jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];

はデフォルトでlocalhostを探しています。シミュレータでは、シミュレータとPCが同じマシン上にあるように動作しますが、デバイスlocalhostは異なるため、動作させるには、それを変更する必要がありますに行

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

ここに 192.168.1.16 PCのローカルIPアドレスに変更します

8
Mohamed Saleh

IOS Simulatorを使用している場合は、メニューHardware > Shake Gestureをクリックし、Enable Live Reloadオプション。

それが役に立てば幸い! :)

3
Tina Lee

シミュレータを実行している場合は、必ず「ハードウェアキーボードを接続」してください。

enter image description here

0
MoMo

私の場合、en0を優先するローカルイーサネット接続があったため、次の場所でスクリプトを変更する必要がありました。

_node_modules/react-native/react-native-xcode.sh_

から

IP=$(ipconfig getifaddr en0)

IP=$(ipconfig getifaddr en1)

私のwifiがそのポートにあったので。ターミナルで確認してください:_networksetup -listallhardwareports_


これはすべて、次のブログ投稿から学んだものです。

https://www.stevetrefethen.com/blog/react-native-bundle-loading-failing-on-a-physical-device

スティーブ・トレフェテン、ありがとう!


永続的な解決策が何であるかはわかりませんが、スクリプトはどういうわけかwifiのみの接続をチェックする必要があるようです。

0
Rick Love

実際のネイティブデバイスでアプリを実行している場合。次に、デバイスを振ると、メニューがポップアップします。

0
Shivam Sinha