CocoaPods找不到兼容的React-perflogger pod版本该如何解决?
[!] CocoaPods无法找到兼容版本的pod "React-perflogger":
Podfile中对应的依赖声明为:
React-perflogger (from../node_modules/react-native/ReactCommon/reactperflogger)
系统提示已找到满足React-perflogger (from ../node_modules/react-native/ReactCommon/reactperflogger)依赖的Specs,但这些版本要求更高的最低部署目标。
核心原因
该报错本质是项目当前配置的iOS最低部署版本,低于React-perflogger依赖要求的最低iOS版本。不同React Native版本对应的React-perflogger要求不同,例如RN 0.71+普遍要求iOS 12.4及以上,RN 0.72+要求iOS 13.0及以上。
排查步骤
- 确认当前项目使用的React Native版本:在根目录执行
npm list react-native或yarn list react-native查看版本,核对该版本官方要求的最低iOS支持版本 - 检查Xcode项目全局部署配置:打开ios目录下的
.xcworkspace文件,点击项目根节点,在「General」-「Deployment Info」中查看iOS版本设置 - 检查Podfile全局平台配置:打开ios目录下的Podfile,核对顶部
platform :ios指定的版本号 - 排查是否存在子依赖、第三方库硬编码了更低的iOS版本,拉低了全局部署目标
解决方案
方案1:统一提升项目最低iOS版本(最推荐)
- 将Podfile顶部的
platform :ios, 'XX.0'修改为RN要求的最低版本,例如RN 0.72+修改为platform :ios, '13.0' - 同步将Xcode项目的全局Deployment Info修改为相同的版本号
- 执行以下命令重置Pod缓存并重新安装:
cd ios rm -rf Pods Podfile.lock pod deintegrate pod install --repo-update
方案2:临时强制指定React-perflogger部署目标(仅作为临时兼容方案)
在Podfile末尾的post_install块中添加代码,强制设置React-perflogger的最低部署版本:
post_install do |installer| installer.pods_project.targets.each do |target| if target.name == 'React-perflogger' target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' # 替换为对应RN要求的最低版本 end end # 保留原有post_install块内的其他逻辑 end end
配置完成后执行pod install即可。
方案3:修复依赖不匹配问题
如果是node_modules依赖不完整、RN版本异常导致的报错,重新安装全局依赖后再执行pod安装:
rm -rf node_modules package-lock.json yarn.lock npm install # 或yarn install cd ios && pod install
内容的提问来源于stack exchange,提问作者sam chaudhari
相关产品推荐
相关产品推荐

