Skip to content

解决添加分享扩展后CocoaPods错误:无法找到对象版本'70'的兼容字符串

问题描述

当在Flutter iOS项目中添加分享扩展(Share Extension)后运行pod install时,您可能会遇到以下错误:

CopyArgumentError - [Xcodeproj] Unable to find compatibility version string for object version '70'.

典型环境

  • CocoaPods版本:1.16.2
  • Xcode版本:16.1
  • macOS版本:15.0.1
  • 项目类型:Flutter iOS项目

此问题通常在以下操作后出现:

  1. 原始Flutter iOS项目可正常运行
  2. 在Xcode中添加Share Extension目标
  3. 在Podfile中添加新目标配置
  4. 尝试运行pod install

根本原因

当使用Xcode 16+的专有功能(如创建新文件夹而非新组)时,Xcode会自动将project.pbxproj文件中的objectVersion值升级到70。而CocoaPods 1.16版本尚不支持该对象版本号,导致兼容性错误。

解决方案

✅ 最佳方案:修改pbxproj文件版本号

直接修改项目文件中的对象版本号,使其与CocoaPods兼容:

  1. 在Finder中找到项目目录下的文件:
    your_project.xcodeproj/project.pbxproj
  2. 使用文本编辑器打开该文件
  3. 搜索以下字段:
    objectVersion = 70;
  4. 将版本号70改为60
    diff
    - objectVersion = 70;
    + objectVersion = 60;
  5. 保存文件并重新运行命令:
    bash
    pod deintegrate
    pod install

⚠️ 替代方案:降低Xcode兼容性版本

如果不想手动编辑项目文件,可在Xcode中调整项目设置:

  1. 在Xcode中打开项目
  2. 选择项目导航器的顶层项目(在TARGETS上方)
  3. PROJECT部分的Info标签页
  4. Xcode Compatibility Version从当前版本(如Xcode 16.0)降级到旧版本(如Xcode 14.0)
  5. 保存更改后重新运行pod install

💡 预防措施:避免使用Xcode 16专有功能

防止问题再次发生:

  1. 在Xcode中创建组织结构时:
    • 🚫 避免使用"新建文件夹"(New Folder)选项
    • 使用"新建组"(New Group)选项
  2. 如果已创建过文件夹:
    • 右键点击相关文件夹
    • 选择"转换为组"(Convert to Group)
  3. 验证项目设置的Xcode兼容版本是否符合预期

总结

该错误是由于Xcode 16与CocoaPods 1.16版本的兼容性问题导致。推荐优先采用直接修改pbxproj文件版本号的方案,一步到位解决问题。同时建议保持开发环境的版本协调,及时关注CocoaPods官方兼容性说明,避免使用不兼容的Xcode功能。