运行npm run ios时Xcode中CompileC错误的解决方法
解决React Native iOS构建失败(退出码65):Yoga部署版本不兼容问题
核心问题
Pods项目中Yoga目标的IPHONEOS_DEPLOYMENT_TARGET设为11.0,超出当前Xcode支持的12.0-17.0.99范围,导致CompileC编译Yoga.cpp失败。
可行解决方案
方案一:通过Podfile强制统一所有Pods的部署版本
这是最稳妥的长期解决方案,避免后续新增Pods出现同类问题:
- 打开项目iOS目录下的
Podfile - 在文件末尾添加以下Ruby脚本:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| # 设置为Xcode支持的最低版本,这里以12.0为例 config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' end end end
- 进入iOS目录执行重新安装Pods:
cd ios && pod install
- 重新执行构建命令:
npx react-native run-ios
方案二:手动修改Yoga目标的部署版本(临时快速修复)
适合不想修改Podfile的场景:
- 打开iOS目录下的
Pods/Pods.xcodeproj文件 - 在Xcode左侧导航栏找到Yoga目标(位于Pods项目下)
- 选中Yoga目标,切换到Build Settings标签页
- 搜索
IPHONEOS_DEPLOYMENT_TARGET,将版本值修改为12.0或Xcode支持的其他版本 - 保存后直接重新执行构建命令
方案三:更新React Native版本(适配现代Xcode)
如果项目允许版本升级,新版本React Native通常已将Yoga的部署版本适配到现代Xcode要求:
- 备份项目代码后,执行React Native升级命令:
npx react-native upgrade
- 或通过包管理器更新react-native依赖:
# npm npm install react-native@latest # yarn yarn add react-native@latest
- 重新安装Pods并构建项目
额外检查项
- 确认项目本身的
IPHONEOS_DEPLOYMENT_TARGET也设置为12.0及以上 - 清理构建缓存避免残留问题:
npx react-native clean
或在Xcode中执行Product > Clean Build Folder
内容的提问来源于stack exchange,提问作者ABEY SAJI KURIAN
相关产品推荐
相关产品推荐

