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

React Native iOS构建失败求助:Ld命令出错,常规方案无效

React Native 0.64.2 + Xcode 14.3: 解决Ld链接失败导致的BUILD FAILED问题

问题场景

执行以下命令构建iOS应用时遭遇构建失败:

yarn react-native run-ios --simulator="iPhone 14"
# 或
npx react-native run-ios --simulator="iPhone 14"

报错信息:

** BUILD FAILED **

以下构建命令执行失败:
Ld /Users/username/Library/Developer/Xcode/DerivedData/Appname-hash/Build/Products/Debug-iphonesimulator/Appname.app/Appname normal (in target 'Appname' from project 'Appname')
(1 failure)

已尝试所有常规修复步骤(均无效):

  • 删除Pods/、Podfile.lock、node_modules/、yarn.lock:
    rm -rf Pods/
    rm Podfile.lock
    rm -rf node_modules/
    rm yarn.lock
    
  • 删除Mac存储中的项目构建数据和索引
  • 在Xcode中执行Product > Clean Build Folder清理缓存
  • 清理Yarn/npm缓存:
    yarn cache clean
    # 或
    npm cache clean --force
    
  • 清理Pod缓存:
    pod cache clean --all
    
  • 重新安装依赖:
    yarn install
    pod install
    

环境信息:

macOS: 13.0.1
react-native: 0.64.2
Xcode: 14.3
npm: 8.1.2 (全局)

针对性解决方案

1. 强制使用旧版链接器适配Xcode 14.3

Xcode 14.3默认启用新链接器ld64.lld,旧版RN存在兼容性问题,需强制切换回旧版:

  • 打开项目的ios/Appname.xcworkspace
  • 选中目标Appname,进入Build Settings
  • 搜索Other Linker Flags,添加-ld64参数

2. 排除模拟器架构冲突

M系列Mac的模拟器架构与旧版RN存在适配问题,需排除arm64架构:

  • 在Xcode的Build Settings中搜索Excluded Architectures
  • 分别为Debug、Release模式下的Any iOS Simulator SDK添加arm64
  • 或者直接修改Pod配置文件:在Pods/Target Support Files/Pods-Appname/Pods-Appname.debug.xcconfig和Pods-Appname.release.xcconfig末尾添加:
    EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
    

3. 升级CocoaPods版本

旧版CocoaPods对Xcode 14.3支持不足,升级到1.12.0及以上版本:

sudo gem install cocoapods

升级后重新执行pod install

4. 修复React Native Core模块补丁

RN 0.64.2的WebSocket模块存在空指针问题,需打补丁修复:

  1. 安装补丁工具:yarn add -D patch-package
  2. 创建patch/react-native+0.64.2.patch文件,内容如下:
diff --git a/node_modules/react-native/Libraries/WebSocket/RCTReconnectingWebSocket.m b/node_modules/react-native/Libraries/WebSocket/RCTReconnectingWebSocket.m
index 3f31a4f..b8b4b7a 100644
--- a/node_modules/react-native/Libraries/WebSocket/RCTReconnectingWebSocket.m
+++ b/node_modules/react-native/Libraries/WebSocket/RCTReconnectingWebSocket.m
@@ -147,7 +147,7 @@ static NSString *const RCTReconnectingWebSocketDefaultURL = @"ws://localhost:808
   }
 
   // Check if server exists
-  if (!_webSocket) {
+  if (!_webSocket && _url) {
     _webSocket = [[RCTWebSocket alloc] initWithURL:_url queue:_methodQueue];
     _webSocket.delegate = self;
     [_webSocket open];
  1. 执行补丁:yarn patch-package

5. 查看Xcode详细报错

直接在Xcode中点击构建按钮,查看完整的链接错误日志(比如缺失符号、依赖冲突等),根据具体信息进一步定位问题。

内容的提问来源于stack exchange,提问作者Muhammad Aqeel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:42:52