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

使用Expo开发React Native应用,加载lh3.googleusercontent.com图片遇证书无效问题求解

解决iOS上加载lh3.googleusercontent.com图片时的证书错误问题

问题分析

你当前的NSAppTransportSecurity配置仅针对localhost设置了例外规则,但报错的域名是lh3.googleusercontent.com,该域名的证书验证失败,需要针对它添加对应的ATS例外配置,或者排查网络层面的证书干扰问题。

解决方案

1. 更新app.json中的ATS配置

修改app.json里的NSAppTransportSecurity部分,添加googleusercontent.com的例外规则,确保所有子域名(包括lh3.googleusercontent.com)的HTTPS请求能正常通过证书验证:

"NSAppTransportSecurity": {
  "NSAllowsArbitraryLoads": true,
  "NSExceptionDomains": {
    "localhost": {
      "NSIncludesSubdomains": true,
      "NSExceptionAllowsInsecureHTTPLoads": true,
      "NSExceptionRequiresForwardSecrecy": true,
      "NSTemporaryExceptionAllowsInsecureHTTPLoads": true,
      "NSThirdPartyExceptionAllowsInsecureHTTPLoads": true,
      "NSThirdPartyExceptionRequiresForwardSecrecy": true,
      "NSTemporaryExceptionMinimumTLSVersion": "TLSv1.1",
      "NSRequiresCertificateTransparency": false
    },
    "googleusercontent.com": {
      "NSIncludesSubdomains": true,
      "NSRequiresCertificateTransparency": false,
      "NSExceptionAllowsInsecureHTTPLoads": false,
      "NSExceptionRequiresForwardSecrecy": true
    }
  }
}
  • NSIncludesSubdomains设为true,确保lh3.googleusercontent.com这类子域名也应用该规则
  • 保持NSExceptionAllowsInsecureHTTPLoads为false,因为该域名本身是合法HTTPS服务,不需要允许不安全加载,仅调整证书验证相关适配规则

2. 重启开发环境使配置生效

修改配置后需要执行以下操作:

  • 关闭当前Expo开发服务器,重新运行expo start
  • 关闭iOS模拟器,重新打开并加载应用,确保新的ATS配置被正确读取

3. 排查网络代理干扰

如果上述步骤无效,可能是设备/模拟器使用了代理工具(如Charles、Fiddler),导致证书被代理工具替换引发验证失败:

  • 关闭代理工具或移除模拟器中的代理设置
  • 若需保留代理,需将代理工具的根证书添加到iOS模拟器的信任列表中

额外说明

虽然NSAllowsArbitraryLoads设为true理论上允许所有HTTP/HTTPS请求,但iOS的ATS规则中例外域的配置优先级更高,部分证书验证逻辑仍会生效,针对特定域名添加明确例外是更稳妥的做法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 19:05:03