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

Expo 47下EAS-CLI iOS构建失败:std::unary_function报错

解决Expo EAS iOS构建中boost库std::unary_function报错问题

问题原因

该错误源于C++17标准移除了std::unary_function,而项目依赖的boost版本仍在调用这个已废弃的类型,当使用默认启用C++17及以上标准的新版Xcode构建时,就会触发此报错。

修复步骤

  • 升级boost依赖版本:若项目通过Pod引入boost,在Podfile中指定适配C++17的boost版本(如1.76.0及以上);若为React Native自带的boost,确保React Native版本在0.68+(该版本起已修复boost兼容性问题)。
  • 强制指定C++14编译标准:在iOS项目的Podfile中添加以下配置,让boost相关target使用C++14编译:
    post_install do |installer|
      installer.pods_project.targets.each do |target|
        if target.name == 'boost' || target.name.start_with?('boost-')
          target.build_configurations.each do |config|
            config.build_settings['CLANG_CXX_LANGUAGE_STANDARD'] = 'c++14'
          end
        end
      end
    end
    
    执行npx pod-install ios更新Pod配置后,再重新运行eas build --platform ios。
  • 升级Expo SDK版本:如果使用的Expo SDK版本偏低,升级至最新稳定版(如SDK 48+),新版本通常已处理此类依赖兼容问题。

验证建议

先通过eas build --platform ios --local进行本地构建测试,确认问题修复后再提交远程构建,避免浪费EAS构建资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 13:47:02