You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native iOS模拟器无法调用无SSL的AWS实例API求助

解决React Native iOS模拟器调用AWS HTTP API的网络错误问题

你的问题核心在于info.plist的ATS(App Transport Security)配置结构错误,以下是具体修正方案:

1. 修正ATS配置的结构问题

你当前的配置把NSAllowsArbitraryLoads放在了NSExceptionDomains字典内部,这不符合Apple的ATS配置规范,导致规则不生效。

方案一:全局允许HTTP请求(仅测试环境使用,不推荐生产)

如果只是测试阶段快速验证,可以直接全局关闭ATS的HTTP限制:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

方案二:针对AWS实例IP配置专属例外(推荐所有环境)

为了保证应用安全性,建议只对目标AWS实例开放HTTP权限,配置如下:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <!-- 针对你的AWS实例IP配置例外 -->
        <key>25.234.23.53</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
        <!-- 保留localhost配置用于本地调试 -->
        <key>localhost</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

2. 配置生效操作步骤

  • 关闭当前运行的iOS模拟器
  • 在Xcode中执行Cmd + Shift + K清理构建缓存
  • 重新运行React Native项目:npx react-native run-ios

额外验证项

  • 确认AWS实例安全组已开放3030端口的入站访问权限,允许模拟器所在网络的IP(测试阶段可临时开放0.0.0.0/0)
  • 检查React Native代码中API请求的URL是否拼写正确,确保包含端口号:3030

内容的提问来源于stack exchange,提问作者Ahmad Habib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 21:05:01