安装Cocoapods后firebase-ios-sdk报Missing package product错误
修复方案
这个报错是CocoaPods集成生成workspace时,未正确关联原有Swift Package Manager(SPM)管理的依赖导致的,M1芯片环境搭配1.11.3版本CocoaPods、Xcode 13.x时为高频已知兼容问题,按以下步骤操作即可解决:
前置清理操作
- 完全退出Xcode,确认后续操作全程打开的是CocoaPods生成的
.xcworkspace文件,而非原项目的.xcodeproj文件,打开后导航栏能同时看到主项目和Pods项目才为正确状态 - 按
Command+Shift+G打开路径跳转,输入~/Library/Developer/Xcode/DerivedData,删除当前项目对应的所有缓存文件夹 - 终端进入项目根目录,依次执行以下命令清理CocoaPods残留缓存:
pod deintegrate pod cache clean --all
方案1:保留原有SPM管理的Firebase依赖
如果不需要通过CocoaPods管理Firebase,仅用CocoaPods接入其他新功能,按以下操作修复关联:
- 重新打开
.xcworkspace,选中主项目Target,进入Build Phases > Link Binary With Libraries,删除所有带红色缺失标记的Firebase相关framework条目 - 点击Xcode菜单栏
File > Packages > Reset Package Caches,等待缓存重置完成后,再点击File > Packages > Resolve Package Versions,等待SPM依赖重新拉取解析完成 - 针对M1芯片做兼容处理,终端执行以下命令完成ffi安装、重新集成Pod:
sudo arch -x86_64 gem install ffi arch -x86_64 pod install
- 重新打开workspace,按
Command+Shift+K清理项目后重新编译即可
方案2:统一改用CocoaPods管理Firebase(稳定性最高)
SPM和CocoaPods同时管理同一套依赖很容易出现链接冲突,直接把Firebase迁移到CocoaPods管理可以彻底规避这类问题:
- 打开项目,选中主项目进入
Package Dependencies标签页,选中所有已添加的Firebase相关SPM包,右键选择删除,删除时选Remove Reference即可 - 打开项目根目录的
Podfile,按需添加你用到的Firebase模块,示例配置:
target '你的项目名称' do use_frameworks! # 其他需要接入的Pod依赖 pod 'FirebaseAnalytics' pod 'FirebaseAuth' pod 'FirebaseFirestore' # 按需补充你用到的其余Firebase模块 end
- 终端在项目根目录执行以下命令更新安装依赖:
arch -x86_64 pod install --repo-update
- 安装完成后重新打开workspace,清理编译缓存后重新构建即可
补充说明:1.11.3版本CocoaPods对M1芯片的原生支持存在已知缺陷,如果以上步骤操作后仍有报错,可以执行
sudo gem install cocoapods将CocoaPods升级到1.12及以上版本,升级后重新执行pod install即可解决绝大多数兼容问题。
内容的提问来源于stack exchange,提问作者user19498841
相关产品推荐
相关产品推荐

