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

React Native iOS构建报错Segmentation fault:11问题求助

React Native iOS构建失败:Segmentation fault: 11 错误排查

问题描述

执行yarn run:ios启动现有iOS应用时失败,通过Xcode或yarn构建均触发Segmentation fault错误。

环境配置

运行环境为macOS 13.6、Apple M1芯片,详细配置如下:

System:
    OS: macOS 13.6
    CPU: (8) arm64 Apple M1
    Memory: 179.06 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 16.20.2 - ~/.nvm/versions/node/v16.20.2/bin/node
    Yarn: 1.22.19 - ~/.nodebrew/current/bin/yarn
    npm: 8.19.4 - ~/.nvm/versions/node/v16.20.2/bin/npm
    Watchman: 2023.09.18.00 - /opt/homebrew/bin/watchman
  Managers:
    CocoaPods: 1.12.1 - /Users/teraichi/.rbenv/shims/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1
    Android SDK: Not Found
  IDEs:
    Android Studio: 2022.3 AI-223.8836.35.2231.10671973
    Xcode: 14.2/14C18 - /usr/bin/xcodebuild
  Languages:
    Java: javac 21 - /usr/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 17.0.2 => 17.0.2 
    react-native: 0.64.4 => 0.64.4 
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

报错详情

构建阶段触发PhaseScriptExecution失败,核心错误日志:

PhaseScriptExecution [CP-User]\ Generate\ Specs 
/Users/teraichi/Library/Developer/Xcode/DerivedData/Cucom-basegvsyhmpmsgdvjavywleoezbw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/FBReactNativeSpec.build/Script-9666B301DB9D9BA74C1C0CDD9B765E7B.sh 
(in target 'FBReactNativeSpec' from project 'Pods')

...

/Users/teraichi/Library/Developer/Xcode/DerivedData/Cucom-basegvsyhmpmsgdvjavywleoezbw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/FBReactNativeSpec.build/Script-9666B301DB9D9BA74C1C0CDD9B765E7B.sh: 
line 4: 23095 Segmentation fault: 11  bash -l -c 'SRCS_DIR=/Users/teraichi/Work/Cucom-App-v2/node_modules/react-native/scripts/../Libraries 
CODEGEN_MODULES_OUTPUT_DIR=/Users/teraichi/Work/Cucom-App-v2/node_modules/react-native/scripts/../React/FBReactNativeSpec/FBReactNativeSpec CODEGEN_MODULES_LIBRARY_NAME=FBReactNativeSpec /Users/teraichi/Work/Cucom-App-v2/node_modules/react-native/scripts/generate-specs.sh' 2>&1
     23096 Done                    | tee "${SCRIPT_OUTPUT_FILE_0}"
Command PhaseScriptExecution failed with a nonzero exit code

涉及的脚本内容:

# /Users/teraichi/Library/Developer/Xcode/DerivedData/Cucom-basegvsyhmpmsgdvjavywleoezbw/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/FBReactNativeSpec.build/Script-9666B301DB9D9BA74C1C0CDD9B765E7B.sh

#!/bin/sh
set -o pipefail

bash -l -c 'SRCS_DIR=/Users/teraichi/Work/Cucom-App-v2/node_modules/react-native/scripts/../Libraries CODEGEN_MODULES_OUTPUT_DIR=/Users/teraichi/Work/Cucom-App-v2/node_modules/react-native/scripts/../React/FBReactNativeSpec/FBReactNativeSpec CODEGEN_MODULES_LIBRARY_NAME=FBReactNativeSpec /Users/teraichi/Work/Cucom-App-v2/node_modules/react-native/scripts/generate-specs.sh' 2>&1 | tee "${SCRIPT_OUTPUT_FILE_0}"

已尝试方案

  • 重启电脑
  • 升级macOS版本
  • 更新Xcode版本
  • 升降Node.js版本
  • 尝试网络上常见解决方案,但问题未解决

针对性解决方案

针对Apple M1芯片+React Native 0.64.x的组合,这个错误多由架构兼容或脚本执行环境问题导致,可按以下步骤尝试:

  1. 调整终端运行架构
    打开终端,右键点击终端图标→「显示简介」,取消勾选「使用Rosetta打开」,重启终端后重新执行构建。

  2. 修改生成脚本的执行架构
    找到node_modules/react-native/scripts/generate-specs.sh,在脚本开头添加:

    arch -x86_64
    

    强制以x86架构执行脚本,规避M1的arm64架构冲突。

  3. 彻底清理构建缓存
    执行以下命令清理所有缓存文件:

    rm -rf node_modules
    yarn cache clean
    cd ios && pod deintegrate && pod install
    rm -rf ~/Library/Developer/Xcode/DerivedData
    

    回到项目根目录后重新执行yarn run:ios。

  4. 调整Xcode构建配置
    打开Xcode项目,进入「Build Settings」→「Architectures」,将Build Active Architecture Only设为YES,并确保Valid Architectures包含arm64和x86_64。

  5. 升级React Native版本
    React Native 0.64.x对M1芯片的支持不完善,建议升级到0.66及以上版本(该版本开始全面适配M1芯片)。


内容的提问来源于stack exchange,提问作者寺元一耕

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:19:51