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

如何让expo prebuild命令使用指定版本的CocoaPods?

解决expo prebuild指定CocoaPods版本的问题

方法1:通过环境变量指定CocoaPods命令路径

如果已经在流水线中成功安装了降级后的CocoaPods版本,可直接通过环境变量让expre指向该版本的命令:

  • 先确认降级版本的pod命令路径,执行which pod获取路径后,替换到以下命令中:
    export COCOAPODS_EXECUTABLE=/path/to/your/downgraded/pod && npx expo prebuild --platform ios --npm
    
  • 若不确定具体路径,也可以直接用$(which pod)自动获取当前会话中生效的pod路径:
    export COCOAPODS_EXECUTABLE=$(which pod) && npx expo prebuild --platform ios --npm
    

方法2:在expo配置文件中声明指定版本

在项目根目录的app.json或app.config.js中添加iOS构建配置,明确指定CocoaPods版本:

{
  "expo": {
    "ios": {
      "cocoapods": {
        "version": "1.12.1" // 替换为你需要的具体版本号
      }
    }
  }
}

保存配置后重新执行npx expo prebuild,expo会优先使用你指定的版本(本地已安装的话直接调用,未安装则自动安装该版本)。

方法3:在流水线脚本中锁定CocoaPods环境

如果使用gem管理CocoaPods,可在执行prebuild前强制切换到目标版本的环境:

# 安装指定版本的CocoaPods(若未安装)
gem install cocoapods -v 1.12.1 --user-install
# 将该版本的pod命令路径加入环境变量优先级
export PATH="$HOME/.gem/ruby/$(ruby -v | awk '{print $2}' | cut -d '.' -f 1,2)/bin:$PATH"
# 执行prebuild
npx expo prebuild --platform ios --npm

注:$(ruby -v | awk '{print $2}' | cut -d '.' -f 1,2)会自动获取当前ruby的主版本号(如3.2),无需手动替换。

方法4:用版本管理器隔离CocoaPods环境

如果流水线使用rbenv这类ruby版本管理器,可在项目根目录创建.ruby-version文件锁定ruby版本,再在该环境下安装指定版本的CocoaPods:

# 锁定项目ruby版本
echo "3.2.0" > .ruby-version
# 安装指定版本的CocoaPods
gem install cocoapods -v 1.12.1
# 执行prebuild
npx expo prebuild --platform ios --npm

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 11:41:03