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

M2 Max处理器运行React Native iOS项目报错求助

React Native iOS端(M2 Max)RCT-Folly编译&链接错误解决方案

修复std::unary_function缺失问题

这个报错是因为Xcode 14+默认采用C17标准,而unary_function在C17中已被移除,旧版RCT-Folly仍依赖该特性,两种解决方式二选一即可:

  • 修改编译标准
    找到项目内Pods/Target Support Files/Pods-<你的项目名>/Pods-<你的项目名>.xcconfig文件,添加一行配置:
    CLANG_CXX_LANGUAGE_STANDARD = c++14
    
    或者直接在Xcode中选中RCT-Folly target,进入Build Settings -> C++ Language Standard,将其设置为GNU++14或C++14。
  • 添加兼容宏定义(建议配合脚本避免重复修改)
    在报错对应的RCT-Folly头文件(比如folly/functional/Invoke.h)顶部插入代码:
    #if __cplusplus >= 201703L
    #define unary_function __unary_function
    #define binary_function __binary_function
    #endif
    
    若不想每次执行pod install后重复修改,可在Podfile中添加post_install脚本自动注入这段代码。

解决后续链接错误

链接错误多和架构不兼容、缓存冗余、依赖版本冲突有关,按顺序尝试以下步骤:

  • 彻底清理缓存并重装依赖
    执行以下命令:
    rm -rf node_modules
    rm package-lock.json yarn.lock
    pod deintegrate
    pod clean
    rm -rf ~/Library/Developer/Xcode/DerivedData
    npm install
    pod install
    
  • 适配M2架构配置
    在Xcode中选中主target,进入Build Settings:
    • 将Architectures设置为Standard Architectures (arm64, x86_64)
    • Debug模式下勾选Build Active Architecture Only为YES
    • 为EXCLUDED_ARCHS分别配置:Debug填i386,Release填armv7 i386
  • 升级核心依赖版本
    确保使用React Native 0.70+版本(原生支持Apple Silicon),同时在Podfile中指定兼容C++17的RCT-Folly版本:
    pod 'RCT-Folly', :git => 'https://github.com/facebook/folly.git', :tag => 'v2022.05.16.00', :modular_headers => true
    
    执行pod install完成更新。
  • 排查第三方库兼容性
    部分第三方Native库未适配Apple Silicon,检查项目依赖列表,替换老旧库为兼容版本,或联系库作者更新适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:27:22