不通过局域网,让电脑启动expo服务,然后手机的expo go通过数据线获取电脑上的expo app。主要思路是利用 ADB (Android Debug Bridge) 的端口转发功能,让手机通过 USB 数据线访问电脑上的开发服务器。
以下是详细的操作步骤:
准备工作:开启手机USB调试
- 打开开发者选项 :在手机
设置>关于手机中,连续点击版本号7次。 - 开启USB调试 :返回
设置,进入开发者选项,找到并开启USB调试。 - 连接电脑:用数据线将手机连接到电脑。手机上会弹出"允许USB调试吗?"的提示,点击"确定"。
核心方法:使用 ADB Reverse 转发端口
这是最稳定、推荐的方法。
-
确认设备连接:在电脑终端中运行以下命令,确保能看到你的设备列表:
bashadb devices如果设备列表为空或显示"unauthorized",请检查手机上的USB调试授权。
-
建立端口转发:运行以下命令,将手机上的端口转发到电脑上:
bashadb reverse tcp:8081 tcp:8081Expo 开发服务器默认使用 8081 端口。如果你的服务器使用了其他端口(如19000),请相应修改。
-
启动Expo开发服务器 :在项目目录下,使用
--localhost参数启动服务器,这会让服务器只监听本地地址:bashnpx expo start --localhost--localhost参数能确保服务器不会尝试绑定到局域网IP,从而强制使用USB通道。 -
在Expo Go中打开项目 :服务器启动后,在手机上的Expo Go App中,不要扫描二维码。而是手动输入以下地址:
exp://127.0.0.1:8081或
exp://localhost:8081即可通过USB数据线加载应用。
备选方法:使用 Tunnel 模式
如果 adb reverse 不生效,可以尝试Expo的 --tunnel 模式。这种方式通过Expo的云服务建立连接,不依赖局域网。
bash
npx expo start --tunnel
服务器启动后会生成一个URL,在Expo Go中手动输入这个URL即可。注意,这种方式的加载和刷新速度可能会比USB直连慢一些。
针对旧版Expo的提示
如果你使用的是 Expo SDK 45 或更早版本,Expo CLI 曾经提供一个Web界面。你可以在其中将连接方式从"LAN"切换为"Local",也能实现通过USB连接。不过这个Web界面在新版本中已被移除。
总结
总的来说,最推荐的流程是:
- 开启手机 USB调试。
- 在终端执行
adb reverse tcp:8081 tcp:8081。 - 启动项目
npx expo start --localhost。 - 在Expo Go中手动输入
exp://127.0.0.1:8081。
按照这个流程操作,就可以摆脱对Wi-Fi网络的依赖,通过数据线进行开发和调试了。