You need to enable JavaScript to run this app. react-native run-ios 安装Pods后仅首次成功,后续报错如何解决
优惠活动
大模型
产品
解决方案
定价
更多

react-native run-ios 安装Pods后仅首次成功,后续报错如何解决

修复 react-native run-ios 二次构建失败的配置方案

核心原因

  • 集成CocoaPods后,所有Pods依赖的链接规则、Framework搜索路径都挂载在.xcworkspace的构建层级,RN 0.59版本的react-native run-ios默认指向.xcodeproj入口发起构建,无法加载这些Pod配置,因此会出现二次构建直接报65错误、找不到-lDoubleConversion库的问题。
  • RN 0.59版本的CLI不会自动检测项目下的.xcworkspace文件,必须手动显式指定构建入口,才能避免走错误的.xcodeproj路径。

具体配置步骤

  1. 强制CLI走正确的构建入口
    不要直接执行不带参数的react-native run-ios,需要补充两个必填参数,强制指定workspace和对应的scheme:

    react-native run-ios --workspace ios/你的项目名.xcworkspace --scheme 你的target名称
    

    参数替换说明:

    • --workspace 路径填写iOS目录下通过pod install生成的.xcworkspace文件路径,绝对不能指向.xcodeproj
    • --scheme 填写和Xcode打开workspace后顶部显示的构建scheme完全一致的名称,和Podfile里声明的主target名称匹配
  2. 修正Podfile的不兼容配置
    当前Podfile开启的use_frameworks!动态框架模式,和RN 0.59自带的静态依赖(React、yoga、第三方native模块)兼容性极差,极易出现链接异常,需要做两点调整:

    • 注释掉use_frameworks!行,切回CocoaPods默认的静态库链接模式(这也是RN 0.59官方原生集成的默认配置)
    • 删除Podfile里手动声明的DoubleConversion、glog、Folly三个pod,这三个依赖已经被React的subspec自动关联引入,手动重复声明会触发版本不匹配问题
      调整后主target的核心配置参考:
    target 'myapp' do
      # 注释掉动态框架配置,保持静态库兼容
      # use_frameworks!
    
      pod 'RNDateTimePicker', :path => '../node_modules/@react-native-community/datetimepicker/RNDateTimePicker.podspec'
    
      pod 'React', :path => '../node_modules/react-native', :subspecs => [
        'Core',
        'CxxBridge',
        'DevSupport',
        'RCTText',
        'RCTNetwork',
        'RCTWebSocket',
      ]
    
      pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
      # 此处删除手动引入的三个第三方pod,由React subspec自动加载
    
      target 'myapp-tvOSTests' do
        inherit! :search_paths
      end
    
      target 'myappTests' do
        inherit! :search_paths
      end
    end
    

    调整完成后在iOS目录下执行pod install,重新生成workspace配置。

  3. 清理历史缓存消除构建冲突
    之前第一次能跑、第二次失败的问题,大多是因为.xcodeproj构建残留的缓存和workspace的构建产物路径冲突,需要执行一次全量缓存清理:

    # 先cd到iOS目录下执行
    rm -rf ~/Library/Developer/Xcode/DerivedData/
    rm -rf build/
    pod deintegrate
    pod install
    

    清理完成后,不需要再手动在Xcode里修改任何构建设置,执行带参数的react-native run-ios即可正常启动。

  4. 简化日常操作(可选)
    不想每次手动输入长参数的话,可以在项目根目录的package.json的scripts块里加一行自定义脚本,把固定参数封装好:

    "scripts": {
      "ios": "react-native run-ios --workspace ios/MyApp.xcworkspace --scheme myapp"
    }
    

    后续开发只需要执行npm run ios,就能直接触发完整的构建启动流程,不需要手动操作Xcode。

内容的提问来源于stack exchange,提问作者Ville Miekk-oja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 03:27:04