添加RN Firebase消息推送库后iOS构建FBReactNativeSpec执行失败
解决FBReactNativeSpec PhaseScriptExecution错误(适配M1 + RN Firebase场景)
1. 修复脚本执行权限
M1芯片环境下,RN依赖脚本可能存在权限缺失,执行以下命令:
chmod +x node_modules/react-native/scripts/generate-specs.sh cd ios && pod install --repo-update
2. 调整Xcode架构配置
- 打开Xcode项目,选中目标工程进入
Build Settings - 找到
Architectures,设置为$(ARCHS_STANDARD) - 找到
Excluded Architectures,仅在Debug模式下添加arm64,Release模式下保持为空
3. 彻底清理缓存
# 重置RN缓存 npx react-native start --reset-cache # 删除Xcode派生数据 rm -rf ~/Library/Developer/Xcode/DerivedData
关闭Xcode后重新打开项目编译。
4. 核对Firebase库与RN版本兼容性
确保@react-native-firebase/messaging和@react-native-firebase/push-notification(注意库名拼写,官方为push-notification)版本与你的RN版本匹配:
- RN 0.68+ 对应 Firebase 15.x+
- RN 0.70+ 对应 Firebase 16.x+
锁定兼容版本后重新安装:
npm install @react-native-firebase/messaging@<对应版本> @react-native-firebase/push-notification@<对应版本>
5. 修正Xcode脚本路径
打开Xcode项目的Build Phases,找到[CP-User] Generate Specs,检查脚本中的node路径是否为M1兼容路径:
- 可以通过
nvm which node获取当前Node.js的实际路径,替换脚本中默认的node路径
6. 用Rosetta启动Xcode
右键Xcode图标→Get Info,勾选Open using Rosetta,重启Xcode后重新构建。
内容的提问来源于stack exchange,提问作者Muiez arif
相关产品推荐
相关产品推荐

