Flutter macOS运行CocoaPods找不到兼容screen_retriever pod版本问题问询
问题1:解决报错让应用正常运行的方案
报错核心原因是screen_retriever插件要求的macOS最低部署版本高于你当前Podfile中指定的10.11版本,按以下步骤操作即可修复:
- 第一步:修改项目
macos/Podfile文件,将顶部的版本声明修改为platform :osx, '10.13'(screen_retriever最低要求为10.13,你使用的Big Sur系统完全支持该版本) - 第二步:打开
macos/Runner.xcodeproj项目文件,在Xcode的项目设置中选中Runnertarget,将「General」标签下的Minimum Deployments版本也调整为10.13,和Podfile保持一致 - 第三步:执行清理命令清除缓存:
flutter clean rm -rf macos/Pods macos/Podfile.lock
- 第四步:重新执行运行命令即可正常启动:
flutter run -d macos
如果你确实需要兼容10.11及更低版本的macOS系统,可以在pubspec.yaml中指定使用支持低版本系统的screen_retriever旧版本即可。
问题2:Flutter包被CocoaPods作为pod依赖的原因
Flutter的平台侧插件都是分平台实现的,screen_retriever作为Flutter插件,要实现获取屏幕分辨率、屏幕坐标等功能,必须调用macOS原生的AppKit框架相关API,因此插件本身已经内置了用Swift/Objective-C编写的macOS原生实现,并且打包为标准的CocoaPods pod库。
Flutter构建macOS应用时,会自动扫描所有依赖的Flutter插件,将带有macOS实现的插件的podspec引入到项目的Podfile配置中,交由CocoaPods统一管理这些原生依赖的版本、编译参数,最终和Flutter引擎、你的Dart代码一起编译打包为可执行的macOS应用。
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

