解决添加分享扩展后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项目
此问题通常在以下操作后出现:
- 原始Flutter iOS项目可正常运行
- 在Xcode中添加Share Extension目标
- 在Podfile中添加新目标配置
- 尝试运行
pod install
根本原因
当使用Xcode 16+的专有功能(如创建新文件夹而非新组)时,Xcode会自动将project.pbxproj
文件中的objectVersion
值升级到70
。而CocoaPods 1.16版本尚不支持该对象版本号,导致兼容性错误。
解决方案
✅ 最佳方案:修改pbxproj文件版本号
直接修改项目文件中的对象版本号,使其与CocoaPods兼容:
- 在Finder中找到项目目录下的文件:
your_project.xcodeproj/project.pbxproj
- 使用文本编辑器打开该文件
- 搜索以下字段:
objectVersion = 70;
- 将版本号
70
改为60
:diff- objectVersion = 70; + objectVersion = 60;
- 保存文件并重新运行命令:bash
pod deintegrate pod install
⚠️ 替代方案:降低Xcode兼容性版本
如果不想手动编辑项目文件,可在Xcode中调整项目设置:
- 在Xcode中打开项目
- 选择项目导航器的顶层项目(在TARGETS上方)
- 在PROJECT部分的Info标签页
- 将Xcode Compatibility Version从当前版本(如Xcode 16.0)降级到旧版本(如Xcode 14.0)
- 保存更改后重新运行
pod install
💡 预防措施:避免使用Xcode 16专有功能
防止问题再次发生:
- 在Xcode中创建组织结构时:
- 🚫 避免使用"新建文件夹"(New Folder)选项
- ✅ 使用"新建组"(New Group)选项
- 如果已创建过文件夹:
- 右键点击相关文件夹
- 选择"转换为组"(Convert to Group)
- 验证项目设置的Xcode兼容版本是否符合预期
总结
该错误是由于Xcode 16与CocoaPods 1.16版本的兼容性问题导致。推荐优先采用直接修改pbxproj文件版本号的方案,一步到位解决问题。同时建议保持开发环境的版本协调,及时关注CocoaPods官方兼容性说明,避免使用不兼容的Xcode功能。