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

使用EAS构建React Native Expo iOS项目失败:pod install报错代码1

Expo React Native iOS构建失败:pod install exited with non-zero code: 1 解决方案

错误核心分析

从日志看,两个关键问题导致构建失败:

  1. 方法未定义错误:undefined method __apply_Xcode_12_5_M1_post_install_workaround,这是旧版Expo针对Xcode 12.5和M1芯片的兼容补丁,新版本Expo已移除该方法,但Podfile仍在调用。
  2. 构建配置冲突:多个Pod(expo-dev-menu、Main等)的DEFINES_MODULE设置值不一致,导致无法合并配置。

解决步骤

1. 清理远程构建缓存

先清除EAS远程构建缓存,避免旧依赖或配置干扰:

eas build:clear

2. 升级Expo核心依赖

确保Expo及相关核心包为最新稳定版,运行:

npx expo upgrade

若不想全量升级,至少保证expo、expo-dev-client(若使用)等核心包版本与当前Expo SDK兼容。

3. 修复Podfile配置

如果项目允许生成本地iOS目录(非纯托管工作流),执行以下操作:

  • 生成本地iOS工程文件:
    npx expo prebuild --platform ios
    
  • 打开ios/Podfile,找到调用__apply_Xcode_12_5_M1_post_install_workaround的代码行(日志显示在第66行),直接删除该行。
  • 在Podfile的post_install钩子中添加统一配置,解决DEFINES_MODULE冲突:
    post_install do |installer|
      # 统一设置DEFINES_MODULE为YES
      installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
          config.build_settings['DEFINES_MODULE'] = 'YES'
        end
      end
    
      # 保留原有的React Native相关post_install配置
      react_native_post_install(installer)
    end
    
  • 本地测试Pod安装:
    cd ios && pod install
    
    确认无错误后,重新执行远程构建:
    eas build --platform ios
    

4. 排查第三方依赖

若上述步骤无效,检查package.json中的第三方原生依赖,更新到最新版本——部分旧库可能设置了冲突的DEFINES_MODULE值,新版本通常会修复这类问题。

5. 对齐CocoaPods版本

远程构建使用CocoaPods 1.14.3,本地测试时建议安装相同版本避免差异:

gem install cocoapods -v 1.14.3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 05:35:10