XCode15运行react-native run-ios报YogaKit模块重定义错误如何解决?
可行解决方案
步骤1:清理缓存与旧构建产物
重定义报错大概率由残留的旧编译产物导致,先执行以下命令清理:
- 关闭XCode,进入项目根目录依次执行:
cd ios rm -rf ~/Library/Developer/Xcode/DerivedData/* rm -rf Pods Podfile.lock pod deintegrate cd .. rm -rf node_modules package-lock.json yarn.lock npm install # 若使用yarn则替换为 yarn install cd ios pod install
执行完成后尝试重新运行react-native run-ios,若仍报错继续下一步。
步骤2:统一Pod部署最低版本
报错提示YogaKit的iOS部署目标为8.0,低于XCode15支持的最低版本,需在ios/Podfile末尾添加如下配置统一所有Pod的最低版本:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| # 统一设置最低部署版本为12.0,兼容XCode15 config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' # 修复旧Swift代码在XCode15下的编译问题 config.build_settings['SWIFT_VERSION'] = '5.0' end end end
添加完成后重新执行pod install,再尝试构建。
步骤3:修复模块重定义配置
若仍报YogaKit模块重定义错误,打开XCode进行如下配置修改:
- 进入项目主配置页->Build Settings,搜索
Allow Non-modular Includes In Framework Modules,设置为YES - 搜索
Excluded Architectures,给Debug和Release模式都添加arm64(针对模拟器运行场景) - 搜索
Other C Flags,删除重复指向YogaKit路径的多余配置
步骤4:版本锁定适配
你使用的React Native 0.64.2属于未适配XCode15的老旧版本,可强制锁定YogaKit到兼容版本:
- 若使用yarn作为包管理器,在package.json中添加如下配置:
"resolutions": { "yoga-kit": "1.14.0" }
- 若使用npm作为包管理器,在package.json中添加如下配置:
"overrides": { "yoga-kit": "1.14.0" }
配置完成后重新安装依赖,再执行pod install即可。
内容的提问来源于stack exchange,提问作者rain
相关产品推荐
相关产品推荐

