【问题标题】:React Native Expo change default LAN IPReact Native Expo 更改默认 LAN IP
【发布时间】:2017-09-27 13:15:54
【问题描述】:

我已经安装了虚拟盒子。而当我查看主机 > 局域网 > ip 地址是 exp://192.168.56.1:19000。

如何在不禁用网络的情况下更改它?因为这是我的 virtualbox ip,我的设备无法连接到它。

谢谢

【问题讨论】:

    标签: react-native expo


    【解决方案1】:

    您可以指定REACT_NATIVE_PACKAGER_HOSTNAME 环境变量以使用正确的IP 地址。

    如果您使用的是 XDE,请确保在安装命令行工具后使用 xde . 从您的项目目录启动它。

    【讨论】:

    • 嗨,我尝试使用 cmd set REACT_NATIVE_PACKAGER_HOSTNAME='192.168.1.2' 设置它,但在我的博览会上仍然显示 192.168.56.1 ip 地址。已经尝试重启世博项目。
    • 为我工作。我刚刚使用了export env REACT_NATIVE_PACKAGER_HOSTNAME=192.168.2.108,并在npm start 之后获得了在此IP 上进行展览的预期结果。
    • 在 Windows 上应该是set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.0.105
    • 使用 powershell,$env:REACT_NATIVE_PACKAGER_HOSTNAME = "10.1.1.175"
    • 效果很好,将REACT_NATIVE_PACKAGER_HOSTNAME设置为ip,然后重新打开cmd(power shell)。
    【解决方案2】:

    在windows中你可以使用:

    set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.59
    

    set 仅用于一个会话。如果您在重启后总是想使用相同的 ip,您可以使用:

    setx /M REACT_NATIVE_PACKAGER_HOSTNAME 192.168.1.59
    

    【讨论】:

      【解决方案3】:

      即使设置了自定义ip,仍然无法连接虚拟盒子。

      您需要在网络设置页面为虚拟机设置端口转发。

      应用 Expo 使用真实主机机 ip。

       REACT_NATIVE_PACKAGER_HOSTNAME='真实主机机器ip' npm start

      【讨论】:

        【解决方案4】:

        检查你的电脑是否安装了 virtualbox ,禁用 VirtualBox Host-Only Network

        去win pc:控制面板\网络和Internet\网络连接

        再次运行命令 expo start 就可以了

        【讨论】:

        • 您好,欢迎来到 Stack Overflow :) 您能解释一下具体的步骤吗?终于有截图了……谢谢!
        • 确实有效,问题是当您有多个适配器时,除了 virtualbox,例如另一个 wifi 卡,为了工作,您也必须禁用它
        【解决方案5】:

        从您的项目目录中打开CMD 并以set REACT_NATIVE_PACKAGER_HOSTNAME=192.168.0.12 运行命令。将 ip 替换为您自己的 LAN ip 地址。 命令set 用于在本地设置环境变量,无需将其定义到环境变量中。

        【讨论】:

          【解决方案6】:

          我有类似的问题(可能略有不同),但该解决方案对我不起作用。最后,我尝试了 Expo CLI 工具,它对我来说非常有用,也得到了 Expo 团队的推荐。

          我的详细问题(可能有助于解决类似问题):

          Expo LAN configuration doesn't work for New ReactNative Project

          【讨论】:

            【解决方案7】:

            如果您配置了“ubuntu in windows”,您可以自动执行该过程并运行:

            for /F "usebackq delims=" %A in (`ipconfig  ^| grep -A4 'Wireless LAN adapter WiFi' ^| tail -1 ^| awk '{print $NF}'`) do set REACT_NATIVE_PACKAGER_HOSTNAME=%A
            

            【讨论】:

              【解决方案8】:

              在适用于 Linux 的 Windows 子系统(Ubuntu 18.04.1 LTS “Bionic”)上,我必须使用 export 命令:

              export REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.76.

              【讨论】:

                【解决方案9】:

                通过在 ios 模拟器上重新安装 expo 客户端解决了我的问题。
                我之前使用过 expo v37,但在 v38 上遇到了这个问题,问题是 expo 客户端没有 expo sdk 38。

                【讨论】:

                  【解决方案10】:

                  分享我使用 EXPO 与 Cloud 9 和 AWS Amplify 的经验。和你一样,二维码给出 exp://localhost:19000

                  由于安全组已配置为提供公共访问,我重新生成 QR 码以使其可从公共 IP 地址 exp://XXXX:19000 访问,这可以从 IOS 设备扫描到 EXPO。

                  【讨论】:

                    【解决方案11】:

                    REACT_NATIVE_PACKAGER_HOSTNAME 环境变量适用于 react DevTools。 对于 EXPO,您必须设置 EXPO_DEVTOOLS_LISTEN_ADDRESS 环境变量。 这是确定主机名的奇怪函数:

                    function devtoolsGraphQLHost() {
                        if (process.env.EXPO_DEVTOOLS_LISTEN_ADDRESS && process.env.REACT_NATIVE_PACKAGER_HOSTNAME) {
                            return process.env.REACT_NATIVE_PACKAGER_HOSTNAME.trim();
                        }
                        else if (process.env.EXPO_DEVTOOLS_LISTEN_ADDRESS) {
                            return process.env.EXPO_DEVTOOLS_LISTEN_ADDRESS;
                        }
                        return 'localhost';
                    }
                    

                    【讨论】:

                      【解决方案12】:

                      如果您仍然遇到此问题,请尝试切换到隧道连接。它将安装@expo/ngrok@,然后您可以扫描二维码。这是我所做的,并且无需更改 IP 地址即可正常连接

                      【讨论】:

                        【解决方案13】:

                        点击'npm start',打开你的应用运行所在的浏览器,在左下角,你会找到二维码。

                        在二维码上方显示三个选项'Connection: Tunnel | LAN | Local',默认为'LAN'。只需将其更改为'Local'

                        您的应用程序将启动并运行。

                        【讨论】:

                          【解决方案14】:

                          对我来说,在 Windows 下工作完全不同。 我的电脑有多个网络接口,而 LAN URL 指向的不是移动设备可以连接的接口。

                          通过停用所有不必要的网络适配器很快解决了这个问题。

                          (设置 REACT_NATIVE_PACKAGER_HOSTNAME 环境变量对我不起作用。) 当然,在我配置之前,我在专用网络上并为它禁用了防火墙。

                          或者,为了避免停用网络适配器,您还可以像这样调整适配器的指标或优先级:

                          1. 转到控制面板 > 网络和 Internet > 网络连接
                          2. 右键单击所需的连接(更高优先级的连接)
                          3. 单击属性 > Internet 协议版本 4
                          4. 单击属性 > 高级
                          5. 取消选中“自动指标”
                          6. 在“接口指标”中输入 10
                          7. 点击确定

                          【讨论】:

                            猜你喜欢
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2020-07-30
                            • 1970-01-01
                            • 2016-09-16
                            • 1970-01-01
                            • 2018-12-08
                            相关资源
                            最近更新 更多