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

React Native iOS模拟器无法访问本地HTTPS服务器问题求助

解决iOS模拟器访问本地自签名HTTPS服务器的网络错误
  • 信任自签名证书
    iOS模拟器默认不信任自签名证书,即使ATS配置正确也会拦截请求:

    1. 打开iOS模拟器的Safari,访问你的服务器地址(比如https://localhost:3000)
    2. 当提示“此网站的证书不可信”时,点击“继续访问”
    3. 进入模拟器的「设置」->「通用」->「关于本机」->「证书信任设置」
    4. 找到你的自签名证书,开启「信任此证书」的开关
  • 调整ATS配置覆盖HTTPS相关限制
    你当前的ATS配置仅允许localhost的明文HTTP请求,对HTTPS的自签名证书需要额外配置。修改Info.plist的NSAppTransportSecurity部分:

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>localhost</key>
            <dict>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <false/>
                <key>NSIncludesSubdomains</key>
                <true/>
            </dict>
            <key>127.0.0.1</key>
            <dict>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
            <key>10.20.200.50</key> <!-- 替换成你的本地IP -->
            <dict>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
        </dict>
    </dict>
    

    开发阶段也可以用简化配置(不建议生产环境使用):

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
    
  • 确保服务器绑定正确地址
    检查本地HTTPS服务器是否绑定到0.0.0.0而非仅localhost,这样模拟器才能通过127.0.0.1或本地IP访问。比如Node.js服务器启动时需指定app.listen(3000, '0.0.0.0')。

  • 验证证书域名匹配
    自签名证书的CN(通用名称)或SAN(主题备用名称)必须包含你使用的访问地址:localhost、127.0.0.1、你的本地IP。如果证书仅包含localhost,用127.0.0.1访问会因域名不匹配导致请求失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:12:16