Expo管理工作流React Native生产APK无法访问本地IP端口的解决方案咨询
解决方案
1. 配置精准网络安全策略(推荐)
在项目根目录的app.json中,针对Android平台添加网络安全配置,仅允许指定本地IP使用明文HTTP访问,同时限制其他域名的明文请求:
{ "expo": { // 其他原有配置... "android": { // 其他Android配置... "networkSecurityConfig": { "domainConfigs": [ { "domain": "10.10.x.x", "cleartextPermitted": true, "includeSubdomains": false } ] } } } }
该配置让Android系统仅对10.10.x.x开放明文HTTP权限,既解决生产版无法连接本地API的问题,又保证其他网络请求的安全性,完全匹配你“仅让应用访问本地IP”的需求。
2. 全局启用明文HTTP访问(备选)
如果不需要精准控制,可直接全局开启Android明文流量支持(无需eject),在app.json中添加:
{ "expo": { // 其他原有配置... "android": { // 其他Android配置... "usesCleartextTraffic": true } } }
注意:此配置会允许应用对所有域名使用明文HTTP,仅在不需要严格权限控制时使用。
3. 验证本地网络与服务器设置
- 确保移动设备和本地服务器处于同一局域网
- 检查服务器防火墙,开放
5020、5030端口,允许局域网设备访问 - 确认服务器绑定地址为
0.0.0.0(而非127.0.0.1),否则仅本机可访问,移动设备无法连接
以上方案均基于Expo Managed Workflow,无需执行eject操作,修改app.json后重新构建生产版APK即可生效。
内容的提问来源于stack exchange,提问作者mzgalang
相关产品推荐
相关产品推荐

