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

Windows系统Expo运行Android模拟器报自签名证书链错误求助

问题诱因

报错核心是Expo CLI拉取对应SDK版本的app.json校验schema时触发了SSL证书校验失败,和项目源码无关。
Node.js运行时默认使用内置的CA证书列表做HTTPS校验,不会自动信任Windows系统证书库中导入的自签名证书,当网络链路存在以下情况时就会触发self signed certificate in certificate chain报错:

  • 本地开启了Fiddler、Charles、Reqable等抓包工具,这类工具会生成自签名证书替换HTTPS站点证书实现流量嗅探
  • 开启了全局网络代理,代理节点对HTTPS流量做了中间人替换
  • 处于公司、校园等受管内网环境,网络网关会对HTTPS流量做证书替换实现内容审计

Web端可正常运行是因为浏览器直接复用系统的证书信任规则,且Expo Web启动流程不会触发schema远程拉取校验的逻辑,不会触发该报错;Android模拟器加载失败是因为CLI端的证书校验失败阻塞了配置校验流程,导致bundle无法正常推送到模拟器。
你之前尝试的依赖重装、缓存清理、模拟器数据重置操作都没有触及Node.js SSL校验的核心逻辑,所以无法解决问题。

修复方案

按操作成本从低到高排序:

  • 临时生效方案(推荐本地开发使用)
    启动Expo项目前,在当前终端窗口配置Node.js环境变量跳过SSL校验:
    若使用CMD命令行,执行:
    set NODE_TLS_REJECT_UNAUTHORIZED=0
    
    若使用PowerShell,执行:
    $env:NODE_TLS_REJECT_UNAUTHORIZED=0
    
    配置完成后在同一个终端窗口执行expo start -c清除缓存启动服务,重新连接Android模拟器即可正常加载。该配置仅对当前终端窗口生效,不会修改全局系统配置。
  • 长期生效方案
    打开Windows系统环境变量设置面板,新建用户级环境变量:
    • 变量名:NODE_TLS_REJECT_UNAUTHORIZED
    • 变量值:0
      保存后重启所有终端窗口,后续启动Expo服务会自动加载该配置,无需重复设置。
  • 保留SSL校验的安全方案
    先退出所有抓包工具、关闭全局代理,切换到无证书拦截的网络(比如手机热点)后重试启动;如果必须在内网环境开发,可以向网络管理员获取内网的自签名根证书文件,新增环境变量NODE_EXTRA_CA_CERTS,值填写根证书文件的本地绝对路径,让Node.js信任该自签名证书即可。
  • 额外补全操作
    手动删除C:\Users\<你的实际用户名>\AppData\Local\Expo目录下所有schema-*.json格式的文件,避免已损坏的本地缓存schema文件触发校验错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 13:03:21