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

Expo SDK 53升级后iOS Expo Go运行异常及相关技术问题求助

Expo SDK 53升级后iOS Expo Go运行异常及相关技术问题求助

Hey 各位开发者朋友,最近我在基于Expo SDK 53开发React Native应用时,遇到了两个头疼的问题,折腾了好一阵,给大家梳理下问题和我摸索出来的解决思路,也求各位大佬帮忙补充:

一、路由错误:Component auth has not been registered yet

这个问题特别奇怪:Web端运行完全正常,但在iOS的Expo Go里一启动就报这个错,排查下来大概是这几个原因,你可以逐一排查:

  • 先核对你的路由配置:不管用的是Expo Router还是React Navigation,检查有没有代码里调用了navigation.navigate('auth')或者配置了/auth路径,但对应的屏幕组件根本没注册?比如是不是漏了在导航栈里import Auth组件并添加到屏幕列表中?
  • 注意文件名大小写问题:iOS的文件系统是大小写敏感的,Web端可能对Auth.js和auth.js不区分,但Expo Go在iOS上会认死理,如果你路由里写的是小写的auth,但实际文件名是大写开头的Auth.js,就会报这个找不到组件的错
  • 清Expo Go缓存试试:在iOS上打开Expo Go,长按你的项目图标,选择「Clear Cache」,然后重新扫码加载项目,有时候旧的路由配置缓存会搞鬼
  • 如果你用了组件懒加载:比如React.lazy(() => import('../screens/Auth')),Expo Go在iOS上可能对异步加载的组件注册时机有问题,先改成同步引入组件,看能不能解决,排除这个因素

二、推送通知警告:remote push notifications are not supported in Expo Go with SDK 53

这个我特意查了官方的更新说明,确实是SDK 53的调整,给你两个可行的应对方案:

  • 做自定义开发构建:这是目前测试远程推送的唯一靠谱方式,步骤也不复杂:
    1. 确保你有苹果开发者账号(免费个人账号也能用于开发测试)
    2. 运行expo prebuild --clean生成iOS原生项目文件
    3. 执行expo run:ios,在模拟器或真机上安装自定义的开发客户端,之后在这个客户端里运行项目,就能正常测试远程推送了
  • 临时用本地通知模拟:如果暂时不想折腾开发构建,可以用expo-notifications的scheduleNotificationAsync方法创建本地通知,先把通知的展示、点击逻辑调试好,等后续再切换到远程推送的测试
  • 另外要提醒下:哪怕做了开发构建,也得在苹果开发者后台配置好推送证书(APNs证书),不然还是收不到远程推送,这个步骤别漏了

以上都是我实际踩坑后总结的经验,希望能帮到你,要是有其他细节问题咱们再一起讨论~

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 12:19:51