Swift + Flutter 项目混编,升级Xcode 以及 Flutter SDK,运营原有项目报错
[+2377 ms] ../../../../.pub-cache/hosted/pub.flutter-io.cn/value_layout_builder-0.4.0/lib/src/sliver_value_layout_builder.dart:99:7: Error: The non-abstract class '_RenderSliverValueLayoutBuilder' is missing implementations for these members:
错误日志表明value_layout_builder 插件的 _RenderSliverValueLayoutBuilder 类没有实现 RenderSliver 抽象类的所有必需方法
这个通常是因为插件版本与你的 Flutter SDK 不兼容导致的,所以想着升级下对应的Flutter 插件(value_layout_builder),搜索对应插件,如下所示

一般升级某个插件只要修改对应.yaml文件,然后futter pub get即可,但对于.lock文件,它由 Pub 工具自动生成和维护,详细记录项目所用的每个依赖的确切版本,修改它其实没有任何意义,查看对应的value_layout_builder确实是0.4.0

现在能确定是的项目中确实用到 value_layout_builder 插件,且对应版本就是0.4.0,最新插件的版本以及链接https://pub.dev/packages/value_layout_builder/install
上面的截图中我们发现,全局搜索并没有在.yaml文件中发现 value_layout_builder,那就说明可能是其他插件内部引用了 value_layout_builder 插件,如果要每个去找对应依赖,那相当费时费力,有个命令可以查看某个插件都被那些插件依赖,以value_layout_builder为例
flutter pub deps --style=compact | grep value_layout_builder
最终我们发现

继续搜索 插件 flutter_sticky_header 发现

flutter_sticky_header插件地址https://pub.dev/packages/flutter_sticky_header/install
最新版本为0.8.0
那么我们就需要升级 flutter_sticky_header 插件即可 ,修改对应的 .yaml文件

flutter pub get ,至此,问题解决
总结:
- 一般升级SDK版本,或多会少可能会遇到插件不兼容的问题,基本上升级至最新版本即可解决,对于复杂的项目,或者说拆分的模块比较多的项目,通过命令查找对应的依赖关系会节省很多时间成本
下面是我们自己项目的一个flutter pub get脚本,可以简单看出模块

每个模块下面又会有对应的.yaml文件,如果项目更大,找起来特别费劲,所以学会使用 命令
flutter pub deps --style=compact | grep xxx
可以节省很多时间