React Native開発時にExpoを使っているのですが、以前しょうもないミスで時間を喰ったことがありました。誰かのためにと共有しておきます。
PCとデバッグ機が同一ネットワークに接続しているにも関わらず、同期が取れないことがありました。その際に行った対処を載せています。
原因と対処
不要なネットワークインターフェイスによってNATされている可能性があります。
ネットワークのコントロールパネルから、不要なインターフェイスを無効化しましょう。
Expo XDEが誤ったIPアドレスを指定している場合があります。
PCとデバッグ端末の、ネットワークアドレスが同一であるか確認しましょう。
同一のネットワークアドレスであるか確認する方法として
Windowsでは
ipconfig
やping
を使って確認して下さい。
検証端末では、各端末毎の端末設定よりIPアドレスを確認して下さい。
背景
エラー文
There was a problem loading the requested app. It looks liek you may be using a LAN URL. Make sure your device is on the same network as the server or try using a tunnel.
動作環境
- Windows10-64bit
- VSCode
- Expo XDE
- React Native3.0
Expo XDEを使って実機デバッグする手段は3つあります。
- Tunnel(別ネットワーク間。操作の反映に少し時間が掛かる)
- Lan(同一ネットワーク内。ほぼストレスなくリアルタイムに操作を反映してくれる)
- Local(同一PC内?)
Lan使用時に、同一ネットワークなのにも関わらず検証端末と同期できない場合があります。一つの可能性として不要なネットワークインターフェイスが起動していることが考えられます。意図しないインターフェイスのIPアドレスをExpo XDEが指定する場合があり、その場合正しく通信できません。
自分の場合、以前Docker for Windows
を使用していたことがあり、その際作成されたNATインターフェイスをExpo XDEが指定していることに気が付かず、ハマった過去があります。
不要なネットワークインターフェイスを終了させるには、Windowsの場合右クリックからDisable
で終了できます。(削除ではないので後々復活させられます)
もしお困りでしたら、一度確認してみてはいかがでしょうか。
あと、Expoの小技ですが、端末を物理的に振る(シェイク)するとメニューが飛び出ます。知っていると便利なTipsです(笑)