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

Xcode14环境下如何让pod install使用xcodeproj 1.22.0替代1.21.0?

解决CocoaPods调用旧版xcodeproj的问题

在Xcode 14、macOS 12.5、M1芯片、CocoaPods 1.11.3环境下执行pod install时抛出错误:

RuntimeError - [Xcodeproj] Unknown object version (56).
/opt/homebrew/Cellar/cocoapods/1.11.3/libexec/gems/xcodeproj-1.21.0/lib/xcodeproj/project.rb:228:in initialize_from_file' /opt/homebrew/Cellar/cocoapods/1.11.3/libexec/gems/xcodeproj-1.21.0/lib/xcodeproj/project.rb:113:in open'

核心矛盾:gem list显示已安装xcodeproj 1.22.0,但pod install仍调用CocoaPods内置的1.21.0版本,直接卸载该版本提示未安装,xcodeproj --version返回1.21.0,路径指向/opt/homebrew/bin/xcodeproj。

以下是具体解决方案:

方案一:替换CocoaPods内置的xcodeproj版本

Homebrew安装的CocoaPods有独立的gem环境,和系统/用户gem环境分离,直接gem install的版本不会被它调用,需手动替换:

  • 进入CocoaPods的libexec目录:
    cd /opt/homebrew/Cellar/cocoapods/1.11.3/libexec
    
  • 卸载内置的旧版xcodeproj(如果提示未安装直接跳过):
    gem uninstall xcodeproj --version 1.21.0
    
  • 在该环境下安装xcodeproj 1.22.0:
    gem install xcodeproj -v 1.22.0
    
  • 验证版本是否生效:
    /opt/homebrew/Cellar/cocoapods/1.11.3/libexec/bin/xcodeproj --version
    
    返回1.22.0后,再执行pod install即可。

方案二:用Bundler锁定依赖(长期稳定方案)

通过Bundler管理项目的Ruby依赖,强制指定xcodeproj版本:

  • 在项目根目录创建Gemfile,内容如下:
    source 'https://rubygems.org'
    gem 'cocoapods', '1.11.3'
    gem 'xcodeproj', '1.22.0'
    
  • 安装Bundler并安装依赖:
    gem install bundler
    bundle install
    
  • 以后执行pod install都用Bundler启动:
    bundle exec pod install
    
    这样会严格遵循Gemfile指定的版本,避免环境冲突。

方案三:升级CocoaPods(可选)

尝试升级CocoaPods到兼容xcodeproj 1.22.0的版本:

brew update
brew upgrade cocoapods

升级完成后,新版本CocoaPods通常会内置适配Xcode 14的xcodeproj版本,直接执行pod install即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:27:27