React Native run-ios报错xcodebuild退出码74 FBSDKLoginKit异常
故障根因
xcodebuild 抛出 error code 74 是构建阶段模块校验失败导致,核心触发点是Xcode 13新增了Swift Package Manager依赖的伞头文件布局校验规则,当前构建缓存里的FBSDKLoginKit头文件目录出现了异常嵌套:伞头文件FBSDKLoginKit.h同级目录下多了一层多余的include文件夹,直接触发校验失败。安卓端构建链路不涉及Xcode的SPM校验逻辑,因此可以正常运行。
解决步骤
按以下顺序操作,每步完成后可尝试重新执行npx react-native run-ios验证,故障恢复即可停止后续操作:
- 清理异常目录与全量构建缓存
首先删除错误提示中明确标注的多余嵌套目录,再清理全链路构建缓存,执行以下命令:# 删除异常嵌套的include目录 rm -rf /Users/myuser/Documents/Test/my-app/ios/build/Test/SourcePackages/checkouts/facebook-ios-sdk/FBSDKLoginKit/FBSDKLoginKit/include/include # 进入项目iOS目录清理Xcode缓存 cd /Users/myuser/Documents/Test/my-app/ios xcodebuild clean rm -rf ~/Library/Developer/Xcode/DerivedData/* rm -rf build/ # 重装依赖并更新pod cd .. rm -rf node_modules # 使用npm执行安装,若用yarn则替换为yarn install npm install cd ios pod install --repo-update - 固定FBSDK依赖版本适配老版本RN
你使用的React Native 0.61.3版本发布时间较早,和最新版facebook-ios-sdk存在兼容问题。打开iOS目录下的Podfile文件,添加配置强制固定FBSDK系列依赖到兼容的9.3.0版本:
保存后重新执行# 在Podfile顶部添加版本固定配置 $FBSDKVersion = '9.3.0' pod 'FBSDKCoreKit', $FBSDKVersion pod 'FBSDKLoginKit', $FBSDKVersion pod 'FBSDKShareKit', $FBSDKVersionpod install --repo-update拉取对应版本依赖,再尝试构建。 - 修正SPM依赖配置(若通过Xcode内置SPM导入FBSDK)
如果你的FBSDK依赖不是通过CocoaPods导入,而是直接在Xcode里通过Swift Package Manager添加:- 打开Xcode选中项目Target,找到
Package Dependencies标签页,移除已添加的facebook-ios-sdk依赖 - 删除
ios/build目录下的SourcePackages文件夹 - 重新添加facebook-ios-sdk依赖时,版本规则选择
Up to Next Major Version,固定主版本号为9,不要拉取12以上的高版本
- 打开Xcode选中项目Target,找到
- 临时绕过头文件校验(应急方案)
若以上操作后仍报错,可临时关闭Xcode的伞头文件布局校验:打开Xcode项目的Build Settings面板,搜索Validate Umbrella Header Layout配置项,将Debug、Release环境下的值都修改为NO后重新构建。该方案为临时应急手段,后续升级RN和FBSDK到适配版本后,建议改回默认值避免模块引用异常。
内容的提问来源于stack exchange,提问作者Germano
相关产品推荐
相关产品推荐

