如何修复React Native iOS应用运行时的FBReactNativeSpec构建失败问题
Xcode 构建报FBReactNativeSpec Generate Specs 脚本执行失败修复方案
触发的
** BUILD FAILED **报错,定位到执行失败的命令为PhaseScriptExecution [CP-User]\ Generate\ Specs,对应FBReactNativeSpec组件的代码生成前置脚本流程,不属于业务代码语法类错误,多为环境配置、残留缓存、依赖版本不匹配问题导致。
分步修复操作
- 清理全链路残留缓存
先完全退出Xcode,在项目根目录依次执行以下命令,删除所有可能冲突的旧构建产物、依赖残留:rm -rf node_modulesrm -rf ~/Library/Developer/Xcode/DerivedDatacd ios && rm -rf Pods Podfile.lock build - 校验环境版本匹配性
核对三类核心环境的版本是否符合项目React Native版本要求:- Node.js版本符合项目
package.json中engines字段的指定范围,避免过高/过低版本导致JS侧生成脚本执行中断 - CocoaPods版本≥1.11.3(适配RN0.70及以上版本),不要使用系统自带的低版本pod工具
- Apple Silicon芯片的Mac,关闭终端的「使用Rosetta打开」设置,避免架构不匹配导致脚本调用的Node进程运行失败
- Node.js版本符合项目
- 重装依赖与原生组件
回到项目根目录执行依赖安装:npm install(yarn管理的项目替换为yarn install)
进入ios目录重新执行Pod安装:pod install
注意不要手动修改Podfile中FBReactNativeSpec的默认配置,避免打乱官方预设的脚本执行逻辑 - 特殊场景补全修复
- 如果脚本执行报权限拒绝错误,给项目目录补全读写执行权限:
chmod -R 755 你的项目根目录绝对路径 - 如果之前调整过原生依赖版本,安装完依赖后先执行
npx react-native clean完成全量项目清理,再触发Xcode构建
- 如果脚本执行报权限拒绝错误,给项目目录补全读写执行权限:
内容的提问来源于stack exchange,提问作者Dev
相关产品推荐
相关产品推荐

