React Native Expo打包独立App后无法访问本地API服务器求助
解决Expo打包独立App后无法访问本地API的问题
确认设备与服务器的网络连通性
独立App没有Expo Go的隧道支持,必须保证运行App的设备和API服务器处于同一局域网。可以在设备自带浏览器中直接访问http://192.168.0.99:你的API端口,验证是否能正常获取接口数据。如果浏览器也无法访问,先排查设备和服务器的网络连接问题。配置HTTP明文访问权限(仅开发测试用)
如果API使用HTTP协议,独立App会默认限制明文流量:- Android端:在Expo配置文件
app.json或app.config.js中添加配置,允许明文请求:{ "expo": { "android": { "usesCleartextTraffic": true } } } - iOS端:同样在配置文件中添加App传输安全例外:
{ "expo": { "ios": { "infoPlist": { "NSAppTransportSecurity": { "NSAllowsArbitraryLoads": true } } } } }
注意:正式上线前务必切换为HTTPS协议,避免安全风险。
- Android端:在Expo配置文件
检查API服务器的绑定地址
确保API服务器没有绑定在127.0.0.1或localhost,必须绑定到0.0.0.0或者192.168.0.99,这样局域网内的设备才能访问。以Node.js为例,启动代码要设置监听地址:app.listen(3000, '0.0.0.0', () => { console.log('Server running on http://0.0.0.0:3000'); });排查服务器防火墙规则
服务器所在电脑的防火墙可能拦截了独立App的请求,需要在防火墙设置中开放API对应的端口,允许局域网内的设备访问该端口。
内容的提问来源于stack exchange,提问作者sunil swain
相关产品推荐
相关产品推荐

