在物理iPhone上运行Expo React Native应用时Xcode找不到ExpoModulesCore
Expo React Native iPhone 16 真机构建报错:ExpoModulesProvider 找不到 ExpoModulesCore 模块
问题概述
Expo React Native 应用在 iOS/Android 模拟器运行正常,但通过 Xcode 连接 iPhone 16 真机构建时,抛出错误:ExpoModulesProvider -> no such module "ExpoModulesCore"。ExpoModulesCore 已存在于 node_modules 和 Podfile 中,Android 端无此问题。
已执行的操作步骤
rm -rf node_modules yarn.lockyarnnpx expo installyarn global add expo-cliyarn global add eas-clinpx expo-doctornpx expo prebuild --cleancd iospod installyarn ios(模拟器运行成功)
Node 版本:20.14.0 或 LTS 22.14.0
已尝试的解决方法
- 重新克隆项目
- 彻底清除 Xcode 缓存
- 卸载并重装 Xcode
- 更新 Expo、Yarn、Ruby 及开发工具
解决方案建议
1. 修正 Xcode 项目打开方式(关键)
不要打开 xcodeproj 文件,Pod install 完成后必须打开 ios/[项目名].xcworkspace 文件,否则 Xcode 无法识别 CocoaPods 管理的依赖模块。
2. 深层清理并重新安装 CocoaPods 依赖
# 回到项目根目录 cd .. # 删除 iOS 端构建缓存与 Pod 依赖 rm -rf ios/build ios/Pods ios/Podfile.lock # 进入 iOS 目录执行清理与重装 cd ios pod deintegrate pod install --repo-update
3. 检查 Xcode 项目配置
- Framework 搜索路径:打开 workspace 后,进入项目 Target 的
Build Settings,找到Framework Search Paths,添加路径$(SRCROOT)/../node_modules/expo-modules-core/ios,并设置为recursive。 - Swift 版本匹配:ExpoModulesCore 要求 Swift 5.9+,在
Build Settings中找到Swift Language Version,设置为与 Xcode 兼容的最新稳定版本(如 5.9 或 6.0)。 - 手动链接框架:进入 Target 的
Build Phases→Link Binary With Libraries,点击+按钮,从Pods/ExpoModulesCore/ios目录添加ExpoModulesCore.framework。
4. 验证 Expo 与 iOS 版本兼容性
iPhone 16 搭载 iOS 18,确保你的 Expo 版本支持 iOS 18:
- 执行
npx expo upgrade升级到最新稳定版 - 检查
app.json中ios.minimumOSVersion是否设置为14.0或更高
5. 通过 Expo CLI 直接构建真机
跳过手动操作 Xcode,用 Expo CLI 直接部署到真机:
npx expo run:ios --device
该命令会自动处理依赖链接、签名配置等问题,避免手动操作 Xcode 导致的配置遗漏。
内容的提问来源于stack exchange,提问作者Antonio Guarino
相关产品推荐
相关产品推荐

