You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Expo ejected的React Native应用在iOS模拟器启动崩溃求助

针对ExpoKit Eject后Xcode启动崩溃的排查建议

我之前也碰到过类似的Expo项目eject到ExpoKit后在Xcode中启动崩溃的情况,结合你给出的最小复现步骤,给你几个实用的排查方向:

  • 检查版本兼容性
    首先确认你的Xcode版本和当前使用的Expo SDK版本是否匹配。部分旧版Expo SDK对最新Xcode版本(比如Xcode 15及以上)的支持存在问题。你可以通过expo --version查看当前SDK版本,然后对照Expo官方的版本兼容说明调整Xcode或SDK版本。比如Expo SDK 49推荐使用Xcode 14.3及以上版本。

  • 彻底清理缓存后重新构建
    缓存问题经常是这类崩溃的元凶,建议按以下步骤清理:

    1. 清理Pod相关缓存:执行pod deintegrate && pod cache clean --all,之后重新运行pod install
    2. 清理Xcode缓存:打开Xcode后按Cmd+Shift+K清理构建文件夹,再按Cmd+Option+Shift+K清理派生数据
    3. 清理Expo缓存:执行expo r -c重启Expo服务,之后重新执行eject流程
  • 获取更详细的崩溃日志
    你现在提供的是内核级的崩溃栈,信息太笼统。可以通过这两个方式获取更详细的错误信息:

    1. 在Xcode的Debug Navigator中查看完整的崩溃调用栈,定位到具体出错的代码模块(比如是否是ExpoKit初始化环节出问题)
    2. 打开模拟器的设置 > 隐私与安全性 > 分析与改进 > 分析数据,找到对应应用的崩溃日志,里面会包含具体的错误原因,比如缺失的依赖库、初始化失败的模块等
  • 检查Podfile与项目配置

    1. 打开eject后的ios/Podfile,确认所有Expo相关的Pod都正确引入,没有版本冲突。可以尝试删除Podfile.lock后重新执行pod install
    2. 检查Xcode项目的Build Settings,确认Framework Search PathsLibrary Search Paths配置正确,确保ExpoKit相关的框架能被正确找到
  • 尝试重新Eject并调整配置
    有时候eject时的配置选项可能导致问题,你可以试试:

    1. 使用expo eject --force强制重新生成原生项目文件
    2. 重新eject时切换语言模板(比如从Objective-C换成Swift),看是否能解决崩溃问题

如果以上方法都没有效果,建议尝试创建一个使用不同Expo SDK版本(比如比当前版本低一个大版本)的新项目,重复eject流程,看是否能复现问题,以此排除是SDK版本本身的bug。

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

火山引擎 最新活动