Bitbucket流水线执行Flutter Test时出现FirebaseAppPlatform.verifyExtends错误
问题现象
本地执行flutter test正常,但Bitbucket流水线中执行该步骤时出现以下错误:
/root/.pub-cache/hosted/pub.dartlang.org/firebase_core-1.24.0/lib/src/firebase_app.dart:18:25: Error: Member not found: 'FirebaseAppPlatform.verifyExtends'.
FirebaseAppPlatform.verifyExtends(_delegate);
^^^^^^^^^^^^^
核心原因
流水线环境与本地环境的Flutter版本不匹配,或者Firebase相关依赖拉取的版本不一致,导致firebase_core 1.24.0依赖的FirebaseAppPlatform.verifyExtends方法在流水线环境的依赖包中不存在。
解决步骤
统一Flutter版本
本地执行flutter --version记下当前使用的版本,在Bitbucket流水线的Build Setup步骤中指定安装该版本的Flutter,避免流水线使用默认的旧版本。锁定兼容的依赖版本
在pubspec.yaml中明确指定与firebase_core 1.24.0兼容的firebase_core_platform_interface版本(1.24.0版本对应^4.5.0左右),添加后示例如下:dependencies: firebase_core_platform_interface: ^4.5.0本地执行
flutter pub get后,提交pubspec.lock到仓库,确保流水线拉取和本地完全一致的依赖包。清理流水线依赖缓存
在流水线脚本的flutter pub get步骤前,增加清理pub缓存的命令,避免旧缓存干扰:flutter pub cache clean排查依赖冲突
本地执行flutter pub deps查看完整依赖树,确认没有其他依赖强制修改了firebase_core_platform_interface的版本;流水线中也可执行该命令,对比本地结果找出冲突依赖并调整版本。
内容的提问来源于stack exchange,提问作者Yuki

