macOS13.3/Xcode14下React Native编译报错:Framework not found hermes
问题描述
- 环境变更:macOS从12.x升级至13.x
- React Native版本:0.70.1
- 编译错误:
Framework not found hermes - Ruby版本异常:
- 项目根目录执行
ruby -v输出:rbenv: version `2.7.5' is not installed (set by /Users/macair/documents/code/js/myapp/.ruby-version) - 离开项目根目录后
ruby -v输出:ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21] - macOS 13.x预装Ruby 2.6.8,但本机无法找到该版本
- 项目根目录执行
- 矛盾点:
react-native run-ios和pod install执行成功,但Xcode编译失败
解决方案
1. 修复Ruby版本问题
项目根目录的.ruby-version指定了2.7.5但未安装,可能导致CocoaPods执行环境异常,间接影响Hermes构建:
- 使用rbenv安装指定版本:
rbenv install 2.7.5 rbenv local 2.7.5 - 验证安装:
ruby -v # 应输出ruby 2.7.5p20
2. 彻底清理并重构依赖
修复Ruby版本后,清理旧缓存和Pod依赖:
- 清理Node.js依赖:
rm -rf node_modules npm install - 清理iOS Pod依赖:
cd ios rm -rf Pods Podfile.lock pod deintegrate pod install cd .. - 清理Xcode构建缓存:
打开Xcode → 点击Product→Clean Build Folder(快捷键:Cmd+Shift+K)
3. 检查Hermes配置与依赖
确认Hermes相关配置和依赖是否正常:
- 确保Podfile中
use_react_native!的:hermes_enabled => true未被注释 - 检查
ios/Pods目录下是否存在hermes-engine文件夹 - 打开Xcode项目,进入
Build Phases→Link Binary With Libraries,确认libhermes.a或Hermes.framework已添加(若缺失,可手动从Pods/hermes-engine/destroot/Library/Frameworks路径添加)
4. 适配macOS 13.x的Xcode架构设置
macOS升级后可能存在架构兼容问题:
- 打开Xcode项目 → 选中目标项目 → 进入
Build Settings - 搜索
Excluded Architectures,确保Debug和Release模式下的配置适配当前芯片(Intel芯片可排除arm64,Apple芯片无需排除) - 搜索
Build Active Architecture Only,设置Debug为YES,Release为NO
5. 临时禁用Hermes验证(可选)
若上述方法无效,可临时禁用Hermes排查问题:
- 修改Podfile中
use_react_native!的配置为:hermes_enabled => false - 重新执行
pod install后编译项目,验证是否为Hermes本身的兼容问题
内容的提问来源于stack exchange,提问作者user938363
相关产品推荐
相关产品推荐

