iOS模拟器更新后React Native编译Yoga.cpp失败求助
React Native iOS编译Yoga.cpp失败(Xcode 14.3 + RN 0.64.2)
问题描述
我一直在开发一款React Native应用,此前构建完全正常。更新iOS模拟器后,模拟器被重置、已安装应用全部消失,现在构建iOS版本时出现编译失败,报错为:
CompileC Yoga.cpp normal arm64 c++ com.apple.compilers.llvm.clang.1_0.compiler(属于Pods项目的Yoga目标)
Android端构建正常,已尝试过以下操作但无效:
rm -rf Pods rm -rf ~/Library/Developer/Xcode/DerivedData/* pod deintegrate pod setup
当前环境版本:
"react-native": "0.64.2", Xcode: Version 14.3
构建命令:
npx react-native run-ios --simulator="iPhone 14"
解决方案
1. 调整Xcode架构设置
React Native 0.64.x版本对Xcode 14+的新架构支持存在兼容问题,手动修改项目架构:
- 打开iOS项目的
Pods.xcodeproj - 找到
Yoga目标,进入Build Settings - 搜索
Architectures,将Architectures设置为$(ARCHS_STANDARD),同时在Excluded Architectures中添加arm64(仅针对模拟器) - 主项目的Build Settings也做相同调整
2. 更新Yoga编译配置
在项目的Podfile中添加Yoga的编译参数,强制使用兼容的C++标准:
post_install do |installer| installer.pods_project.targets.each do |target| if target.name == "Yoga" target.build_configurations.each do |config| config.build_settings['CLANG_CXX_LANGUAGE_STANDARD'] = 'c++17' config.build_settings['CLANG_CXX_LIBRARY'] = 'libc++' end end end end
添加完成后执行pod install重新安装依赖。
3. 深度清理后重新构建
除已执行的操作外,补充以下步骤:
- 打开Xcode,点击
Product->Clean Build Folder(快捷键Cmd+Shift+K) - 关闭Xcode,删除iOS项目的build目录:
rm -rf ios/build
- 重新执行构建命令
4. 降级Xcode版本(备选)
由于RN 0.64.2发布时间早于Xcode 14.3,两者兼容性有限,若上述方法均无效,可考虑降级Xcode到13.x版本,该版本与RN 0.64.x适配性更好。
内容的提问来源于stack exchange,提问作者Muhammad Aqeel
相关产品推荐
相关产品推荐

