我正在开发一个世博会应用程序,我正在使用一些缓存功能。为了测试它们,我必须在离线模式下测试我的应用程序,但如果我关闭WiFi(系统或设备)我的应用根本无法连接到Metro服务器。即使在调试器中将网络设置设为脱机也不起作用,应用程序又一次完全没有加载。我如何在设备中模拟离线模式,同时仍然能够连接到Metro Bundler?
jk9hmnmh1#
我纠结了一会儿才找到答案。通过USB连接!到目前为止我只在iPhone上测试过这个,但应该也适用于Android。我应该警告说,我使用的是EAS构建,但这也应该与基本博览会工作。使用基本开发方法(expo start--dev-client),客户端应用程序和服务器通过本地路由器连接。服务器自动侦听本地LAN中可用的IP地址(这就是二维码的作用)。这对开发先离线功能没有帮助,因为一旦你把手机和WiFi断开,连接将丢失,开发应用程序将关闭。2要离线开发,您可以执行以下操作:1.运行以下命令:ifconfig -a。记下列表中编号最高的网络接口,例如en71.使用usb数据线连接手机1.重新运行ifconfig,两个新的网络接口应显示最大的编号。选择第二大的。例如en8。记下它的inet ip地址1.在将运行开发服务器的shell中运行export EXPO_DEVTOOLS_LISTEN_ADDRESS=<ip address here>1.运行export REACT_NATIVE_PACKAGER_HOSTNAME=<ip address here>
ifconfig -a
en7
ifconfig
inet ip
export EXPO_DEVTOOLS_LISTEN_ADDRESS=<ip address here>
export REACT_NATIVE_PACKAGER_HOSTNAME=<ip address here>
expo start --dev-client
wljmcqd82#
我也遇到过同样的问题,在网上找不到简单的解决方案。幸运的是,我尝试了以下方法,效果很好:1.连接物理设备。我在模拟器上尝试了一段时间,但失败了。1.在localhost上启动Expo,而不是默认情况下在LAN上启动Expo:expo start --localhost.1.禁用设备上的WiFi/Hive连接。1.查看与Metro Bundler的连接是否仍在工作。1.像你习惯的那样工作。
expo start --localhost
stszievb3#
如果你是在Android设备上测试,以下步骤对我来说很有效:1.通过USB电缆连接物理设备。请确保已打开开发人员模式。1.使用expo start --localhost在本地主机中启动expo。1.使用adb,设置一个连接,这样你的设备就可以监听运行开发服务器的端口。这可以使用命令adb reverse tcp:[port] tcp:[port]来完成。例如,假设你的服务器运行在127.0.0.1:19000上,运行命令亚洲开发银行反向传输协议:19000传输协议:190001.现在你应该可以在没有互联网连接的情况下运行expo中的应用程序。
adb reverse tcp:[port] tcp:[port]
127.0.0.1:19000
3条答案
按热度按时间jk9hmnmh1#
我纠结了一会儿才找到答案。通过USB连接!到目前为止我只在iPhone上测试过这个,但应该也适用于Android。
我应该警告说,我使用的是EAS构建,但这也应该与基本博览会工作。
使用基本开发方法(expo start--dev-client),客户端应用程序和服务器通过本地路由器连接。服务器自动侦听本地LAN中可用的IP地址(这就是二维码的作用)。这对开发先离线功能没有帮助,因为一旦你把手机和WiFi断开,连接将丢失,开发应用程序将关闭。2要离线开发,您可以执行以下操作:
1.运行以下命令:
ifconfig -a
。记下列表中编号最高的网络接口,例如en7
1.使用usb数据线连接手机
1.重新运行
ifconfig
,两个新的网络接口应显示最大的编号。选择第二大的。例如en8。记下它的inet ip
地址1.在将运行开发服务器的shell中运行
export EXPO_DEVTOOLS_LISTEN_ADDRESS=<ip address here>
1.运行
export REACT_NATIVE_PACKAGER_HOSTNAME=<ip address here>
expo start --dev-client
正常1.通过二维码广告的IP地址现在将是您在上面放置的USB连接的IP,因此移动客户端应用程序将通过USB电缆到达您计算机上的开发服务器。
1.在手机上打开飞机模式,只要你想。地铁,热重装,调试,所有保持功能,事实上通常比通过路由器快得多。享受吧!
wljmcqd82#
我也遇到过同样的问题,在网上找不到简单的解决方案。幸运的是,我尝试了以下方法,效果很好:
1.连接物理设备。我在模拟器上尝试了一段时间,但失败了。
1.在localhost上启动Expo,而不是默认情况下在LAN上启动Expo:
expo start --localhost
.1.禁用设备上的WiFi/Hive连接。
1.查看与Metro Bundler的连接是否仍在工作。
1.像你习惯的那样工作。
stszievb3#
如果你是在Android设备上测试,以下步骤对我来说很有效:
1.通过USB电缆连接物理设备。请确保已打开开发人员模式。
1.使用
expo start --localhost
在本地主机中启动expo。1.使用adb,设置一个连接,这样你的设备就可以监听运行开发服务器的端口。这可以使用命令
adb reverse tcp:[port] tcp:[port]
来完成。例如,假设你的服务器运行在127.0.0.1:19000
上,运行命令亚洲开发银行反向传输协议:19000传输协议:19000
1.现在你应该可以在没有互联网连接的情况下运行expo中的应用程序。