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

M2芯片Mac+Xcode15运行React Native遇PhaseScriptExecution错误求助

问题描述

搭载M2芯片的MacBook Air,搭配Xcode 15.0,在模拟器中运行React Native项目时出现以下构建错误:

以下构建命令执行失败:
PhaseScriptExecution [CP-User] Generate Specs /User.../FBReactNativeSpec.build/Script-46EB2E110.sh(来自项目'Pods'的目标'FBReactNativeSpec')
(1次失败)

新建React Native项目尝试iOS运行时问题依然存在,已执行以下操作:

  • 选择Product Destination的Show Rosetta
  • 添加链接器标志-ld64

附react-native info配置信息:

System:
    OS: macOS 14.1
    CPU: (8) arm64 Apple M2
    Memory: 498.81 MB / 24.00 GB
    Shell: 3.2.57 - /bin/bash
  Binaries:
    Node: 18.18.0 - /usr/local/bin/node
    Yarn: 1.22.19 - /opt/homebrew/bin/yarn
    npm: 9.8.1 - /usr/local/bin/npm
    Watchman: 2023.09.25.00 - /opt/homebrew/bin/watchman
  Managers:
    CocoaPods: 1.13.0 - /opt/homebrew/bin/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 23.0, iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0
    Android SDK: Not Found
  IDEs:
    Android Studio: 2022.2 AI-222.4459.24.2221.10121639
    Xcode: 15.0/15A240d - /usr/bin/xcodebuild
  Languages:
    Java: 19.0.1 - /usr/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 17.0.2 => 17.0.2 
    react-native: 0.66.4 => 0.66.4 
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found
错误成因
  1. 版本兼容性不匹配:React Native 0.66.4是2021年的老旧版本,完全未适配Xcode 15和macOS 14(Sonoma)。Xcode 15重构了构建工具链,默认使用ld64.lld链接器,且对Pod脚本的执行环境有新要求,老版本RN的FBReactNativeSpec生成脚本无法适配这些变化。
  2. Node版本过高:RN 0.66.4官方推荐的Node版本范围是14.x-16.x,当前使用的Node 18.18.0超出兼容范围,可能导致脚本执行时出现隐性错误。
  3. CocoaPods版本偏旧:CocoaPods 1.13.0对Xcode 15的支持不完善,Pod依赖的构建脚本可能存在架构适配问题。
解决方法

方案一:升级React Native版本(推荐)

老旧RN版本与新系统、新Xcode的兼容性问题无法通过临时修复彻底解决,建议升级到0.72及以上版本(该版本开始官方适配Xcode 15和Sonoma):

  • 备份项目代码后,使用RN官方升级工具执行升级:
    npx react-native upgrade
    
  • 升级完成后,重新安装依赖:
    npm install
    cd ios && pod install
    

方案二:临时修复(无法升级RN时使用)

  1. 调整脚本权限:
    进入iOS项目的Pod目录,给报错的脚本添加可执行权限:
    cd ios/Pods/FBReactNativeSpec
    chmod +x Script-46EB2E110.sh  # 替换为实际的脚本文件名
    
  2. 修改脚本执行环境:
    在Xcode中打开项目,找到Pods项目下的FBReactNativeSpec目标,进入Build Phases -> [CP-User] Generate Specs,勾选"Run using Rosetta",并确保脚本的Shell路径设置为/bin/bash。
  3. 升级CocoaPods:
    brew upgrade cocoapods
    cd ios && pod deintegrate && pod install
    
  4. 降级Node版本:
    使用nvm管理Node版本,切换到RN 0.66.4兼容的16.x版本:
    nvm install 16
    nvm use 16
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 09:01:28