Expo LAN 配置不适用于新的 ReactNative 项目

Expo LAN configuration doesn't work for New ReactNative Project

我在 Whosebug 上看到过类似的问题,但 none 解决了这个问题。我刚刚从 Expo 桌面应用程序创建了新的 ReactNative 项目。但是当 Expo 配置设置为 LAN 模式时,我无法通过 QR 码扫描在我的 Android phone 上 运行 它。在我的 Android phone 上似乎无法访问(看起来像)。我的 phone 在同一个 Wifi 网络上。

我也曾尝试通过关闭防火墙来 运行 Expo 演示应用程序,但仍然没有成功。我相信您的技术外观可能会缓和我的问题。

注意:Expo 隧道已关闭,这就是它以 LAN 模式加载的原因。几天前,我尝试了有效的隧道模式。但是,那个时候局域网也行不通。所以可能有人能给我指出正确的方向,所以我可以 运行 在 LAN 模式下(在 Phone 和同一 Wifi 网络上的机器上)。

您的 Android phone 无法访问服务器,因为虚拟适配器网络正被用作首选子网。

提高 WiFi 适配器优先级,它应该 运行 没问题。 (取消选中高级适配器设置中的自动度量并为接口度量分配一个较小的数字)。

看到这个link: 适配器优先级设置在 Windows 10 中不可用

在努力通过 XDE 桌面应用程序但没有成功之后。最后决定尝试此处提到的 Expo CLI 工具:https://expo.io/learn 通过几个简单的步骤,它为我创建了第一个演示项目。

然后在此处执行 CLI 命令:https://docs.expo.io/versions/latest/guides/exp-cli.html 我现在可以 运行 我的第一个演示应用程序使用简单的命令,例如exp start --dev --lan,它与 XDE (Expo Desktop) 应用程序在 LAN 和开发者模式下配置设置的工作相同。

I had gone through every possible solution but non worked for me to setup LAN connectivity, except the Expo CLI tool. Any one facing similar problems? Please go and give CLI a try. But make sure you check your Network Adapter priority settings (as VMWare/VBox network adapter's priority does create problem). As proposed by @mano.

我的 Ubuntu/Crouton 设置大致遇到了这个问题,问题是我有一个本地防火墙阻止了端口。

修复是使用 iptables 打开端口,如下所示:

$ sudo apt-get install iptables
$ sudo /sbin/iptables -I INPUT -p tcp --dport 19000 -j ACCEPT

更多信息在这里:https://github.com/dnschneid/crouton/wiki/Running-servers-in-crouton

我可以想象在其他平台上也可能需要类似的解决方案。

在OSX上,原来是防火墙挡住了我的19000端口。要去

Setting > Security & Privacy

并关闭防火墙解决了问题。

FWIW,对我来说,我已经将 nodejs 设置为 "allow connections via private networks only",但是我 Windows 机器上的 wifi 网络没有设置为私有。我将它从 public 更改为私有,重新启动应用程序然后它运行正常。

我遇到了同样的问题。您应该关闭防火墙 public 或进一步设置 inbound-outbound。

在Windows 10 我遇到了同样的问题。我完成了这些任务:

  1. 更改了网络接口的优先级。

    如何在 Windows 10 上更改网络适配器的优先顺序

    之前:

    之后:

    手机和电脑必须在同一个网络(检查掩码)。 就我而言,Virtual Box 改变了优先级。

  2. 我关闭了防火墙并查看应用程序是否正常运行。然后我对防火墙做了正确的调整。

我以某种方式能够找出问题所在。您只需要执行 ipconfig /all (windows) 或 ifconfig (Unix) 并检查无线局域网适配器 WIFI IPV4 地址并将 exp URL 中的主机替换为它。

exp://192.168.84.161:19000(在博览会开始时发布的 URL 使用以太网 IPV4 地址而不是无线 LanIPV4 192.168.0.10)。

更改主机并直接在 safari 上点击它会打开一个 expo 应用程序并成功加载反应应用程序。

就我而言,我的 PC 上安装了 Docker 桌面客户端。我刚刚从我的电脑上卸载了 Docker,它正在运行。

如果您是 Windows 用户,请确保您的防病毒防火墙已被禁用。

我不确定这对你有没有帮助,但就我而言,这对我有帮助,所以你也可以试试这个:

1:首先你必须增加WiFi Adapter优先级(Interface Metric)

转到控制面板 > 网络和 Internet > 网络连接

步骤1)如上图所示右击wi-fi并右击>点击属性

步骤 2) select Internet 协议版本 4 和 > 单击属性

步骤 3) 单击 > 高级

步骤 4)

  1. 取消选中 'Automatic Metric'
  2. 在'Interface Metric'
  3. 中输入5
  4. 点击确定

2:您必须将您的 wifi 网络配置文件从 Public 更改为私有

步骤 1) select从可用的 WiFi 网络连接您的网络并单击属性

步骤 2) 将您的网络配置文件从 Public 更改为私人

到此为止运行您在 LAN 上的 expo 项目将 100% 正常工作

在 Windows 10:

  1. 您应该单击连接属性:

  1. 然后在网络配置文件中将网络连接从Public更改为私人 ].

在我的 android 中它曾经工作,但有一天它停止并在 android 重启后开始工作。

对我来说,它只能禁用所有其他网络适配器。

我的 windows 电脑有多个网络接口,LAN URL 指向一个不同于移动设备可以连接的接口。

(设置 REACT_NATIVE_PACKAGER_HOSTNAME 环境变量或设置适配器的优先级对我不起作用)

当然我在专用网络上并且在配置它之前禁用了它的防火墙。