Expo从托管工作流Eject到原生工作流后React Native iOS项目无法运行的问题求助
解决 Expo Eject 后 iOS 构建失败的三个核心问题
刚帮好几个开发者处理过类似的Expo转原生工作流后的iOS构建故障,结合你贴的项目配置,咱们逐个击破这些报错:
1. 修复 Packager 脚本路径错误
报错提示找不到launchPackager.command,本质是eject后Xcode项目里的脚本路径指向了错误的层级:
- 打开iOS目录下的
myproject.xcworkspace - 选中项目target,切换到Build Phases标签页
- 找到
Bundle React Native code and images这个构建阶段,双击编辑脚本内容 - 把脚本里的路径替换为指向项目根目录node_modules的相对路径,比如修改为:
export NODE_BINARY=node ../node_modules/react-native/scripts/react-native-xcode.sh
2. 解决ExpoModulesCore找不到的Swift编译错误
这个问题基本都是Pod依赖没正确安装或链接导致的,按以下步骤操作:
- 先清理旧的Pod缓存:
cd ios rm -rf Pods Podfile.lock pod deintegrate - 因为你用的是M1 Mac,执行Pod安装时需要兼容x86架构:
arch -x86_64 pod install - 安装完成后检查Xcode配置:
- 进入Build Settings,找到
Framework Search Paths,添加路径$(SRCROOT)/../node_modules/expo-modules-core/ios - 确认
Swift Language Version设置为Swift 5.0或更高版本
- 进入Build Settings,找到
3. 解决xcodebuild退出码65的构建失败
这个错误是前两个问题的连锁反应,解决上面两个后,再做这些收尾操作:
- 别用
react-native run-ios启动项目,改用你package.json里的脚本:
(npm run iosexpo run:ios会自动处理Expo原生模块的配置,纯原生RN命令做不到这点) - 清理Xcode缓存:按下
Cmd+Shift+K清理构建缓存,然后重启Xcode - 确认Xcode的scheme选择的是
myproject,且模拟器/设备处于可用状态
额外检查点
- 你的
expo doctor显示没问题,但再确认下版本兼容:Expo 44确实对应React Native 0.64.3,版本匹配没问题 - 检查
Podfile里的use_expo_modules!是否在target块内,你的配置是正确的,不用改动
按这些步骤走下来,应该能顺利完成iOS项目的构建和运行。
内容的提问来源于stack exchange,提问作者The Cors Error
相关产品推荐
相关产品推荐

