この問題は、主にデバイスと開発マシンが同じLANにないために発生します。かどうかを確認してください。コンピューターとデバイスが保存LANに接続されていることを確認してください。すべて問題ありません。
結局、同じLANに接続されているurデバイス。そして、あなたがXcodeを使用している場合。
npm start -- reset-cache
を実行しますその後、すべてがOKになります。
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アドレスに変更します
IOS Simulatorを使用している場合は、メニューHardware > Shake Gesture
をクリックし、Enable Live Reload
オプション。
それが役に立てば幸い! :)
私の場合、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のみの接続をチェックする必要があるようです。
実際のネイティブデバイスでアプリを実行している場合。次に、デバイスを振ると、メニューがポップアップします。