You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

React Native iOS项目iPhone X真机编译网络请求失败问题求助

解决React Native iPhone X真机网络请求失败的配置要点

遇到真机网络请求失败的问题很常见,我帮你梳理几个关键的配置检查项,这些都是React Native部署到iPhone真机时容易遗漏的点:

1. 配置App Transport Security (ATS) 策略

iOS默认会严格限制非HTTPS的网络请求,或者对HTTPS证书的有效性有较高要求。你需要在项目的Info.plist文件中添加适配配置:

  • 如果你的后端使用HTTP协议(比如测试环境的本地服务器),可以添加NSAppTransportSecurity字典,并将NSAllowsArbitraryLoads设置为YES
  • 更安全的做法是针对特定API域名配置ATS例外(提交App Store时全局关闭安全限制可能被拒),示例配置如下(可直接在Xcode的Info.plist可视化编辑器中添加,或用XML代码):
<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>your-api-domain.com</key>
    <dict>
      <key>NSIncludesSubdomains</key>
      <true/>
      <key>NSAllowsArbitraryLoads</key>
      <true/>
    </dict>
  </dict>
</dict>

2. 在iPhone上信任开发者证书

即使你在Xcode中选择了开发团队,真机依然需要手动信任对应的证书,否则APP的网络请求会被系统拦截:

  • 打开iPhone的设置通用VPN与设备管理(iOS 16及以上版本),或者描述文件与设备管理(旧版本iOS);
  • 找到你的Apple ID对应的开发者描述文件,点击进入后选择信任
  • 信任完成后,重启APP再测试登录请求。

3. 关闭远程调试模式

React Native的远程调试(Debug JS Remotely)会把网络请求转发到电脑端的Chrome调试器,这会导致真机无法直接发起网络请求到后端:

  • 在APP内摇一摇手机(或者通过Xcode顶部菜单DebugSimulate Shake触发)打开开发者菜单;
  • 取消勾选Debug JS RemotelyEnable Live Reload选项,之后重新测试登录功能。

4. 确认网络环境一致性(针对本地后端)

如果你的API服务器部署在本地电脑上,需要确保:

  • iPhone和电脑连接在同一个WiFi网络下;
  • API请求地址使用电脑的局域网IP地址(比如192.168.x.x),而不是localhost127.0.0.1——真机无法访问电脑的本地回环地址。

5. 检查iPhone的网络权限限制

有时候系统会限制APP的网络访问权限,你可以检查:

  • 打开iPhone的设置蜂窝网络,找到你的APP,确认蜂窝数据处于开启状态;
  • 如果使用WiFi,确保当前WiFi可以正常访问目标API(比如用手机浏览器打开API地址测试是否能正常返回数据)。

内容的提问来源于stack exchange,提问作者Caitlin Wen

火山引擎 最新活动