You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native ImagePicker iOS编译报错:yoga.YGNode非模块化头文件引入问题

解决方案:解决React Native iOS中Include of non-modular header inside framework module 'yoga.YGNode'错误

针对你的场景(必须保留use_frameworks!,RN 0.68.5版本),可以尝试以下几个针对性修复步骤:

1. 修改Podfile,添加Yoga适配配置

在Podfile的target 'YourAppName' do代码块内,补充以下post_install配置:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    # 修复Yoga的模块化头文件问题
    if target.name == 'Yoga' || target.name == 'YogaKit'
      target.build_configurations.each do |config|
        config.build_settings['DEFINES_MODULE'] = 'YES'
        config.build_settings['HEADER_SEARCH_PATHS'] = '"$(PODS_TARGET_SRCROOT)" "$(PODS_ROOT)/Yoga"'
      end
    end
    # 适配react-native-image-picker的framework依赖
    if target.name == 'RNImagePicker'
      target.build_configurations.each do |config|
        config.build_settings['FRAMEWORK_SEARCH_PATHS'] = '"$(inherited)" "$(PODS_ROOT)/Firebase"'
      end
    end
    installer.pods_project.save
  end
end

添加完成后,执行npx pod-install ios,再用Cmd+Shift+K清理Xcode缓存后重新编译。

2. 调整Xcode中Yoga的头文件公开设置

  1. 打开Xcode项目,左侧导航栏找到Pods -> Yoga -> Headers文件夹
  2. 将YGNode.h等红色标记的非公开头文件拖到Public分组下
  3. 选中Yoga目标,进入Build Phases -> Headers,确认YGNode.h在Public列表中
  4. 重新编译项目

3. 改用静态Framework链接(推荐)

RN 0.68+支持静态framework链接,既能满足Firebase依赖要求,又能避免模块化冲突。修改Podfile中的配置:

# 替换原有的use_frameworks!
use_frameworks! :linkage => :static

执行npx pod-install ios,清理缓存后重新构建项目。

4. 锁定Yoga兼容版本

在package.json中添加版本锁定:

"resolutions": {
  "yoga": "1.14.0"
}

删除node_modules和Podfile.lock,重新执行yarn install(或npm install)和npx pod-install ios后编译。


内容的提问来源于stack exchange,提问作者gabogabans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:00:01