MacBook上Expo开发证书获取失败:回退至缓存证书求助
你当前遇到的错误提示:
There was an error fetching the Expo development certificate, falling back to cached certificate
在试过常规排查步骤后,还可以尝试以下方案:
额外排查步骤
检查Expo账户登录状态
运行expo whoami确认是否已登录,未登录的话执行expo login重新登录,登录后重启项目。账户会话过期常会导致证书请求失败。手动删除Expo证书缓存目录
macOS上Expo证书缓存默认在~/.expo/certificates,直接删除该目录下所有文件,再重新运行项目,让Expo重新请求生成证书。降级Node.js到兼容版本
Expo SDK 49官方推荐Node.js 16.x/18.x LTS版本,你用的v19.7.0是非长期支持版,可能存在兼容性问题。用nvm管理版本的话:- 安装nvm后运行
nvm install 18 - 切换版本
nvm use 18 - 重新启动项目
- 安装nvm后运行
重置Expo项目配置
执行expo config reset重置项目配置,然后重新安装依赖(npm install或yarn install),再启动项目。清理系统钥匙串中的无效Expo证书
打开「钥匙串访问」应用,搜索“Expo”相关证书,删除过期或无效的条目,之后重新运行项目,让Expo重新生成并安装证书。尝试隧道模式启动项目
启动时加--tunnel参数:expo start --tunnel,隧道连接可能绕过部分网络限制导致的证书请求失败。
进一步排查方向
如果以上都无效,新建一个空白Expo测试项目运行,看是否同样报错:
- 若新项目正常,说明是当前项目配置问题,对比两个项目的
app.json/app.config.js,重点检查证书、权限相关配置差异。 - 若新项目也报错,考虑是系统环境问题,比如macOS Sonoma的特定兼容性bug,可以尝试更新系统到最新补丁版本,或暂时切换到Expo SDK 48测试。
内容的提问来源于stack exchange,提问作者Rokas Rudzianskas

