能否在仅移动端Flutter应用中同时使用最新版geolocator与firebase_auth?
在仅移动端Flutter应用中同时使用geolocator 13.0.1和firebase_auth 5.2.0的解决方案
可以通过以下两种方法实现,核心思路是规避web平台的依赖冲突(因为你的应用仅针对移动端,无需考虑web端兼容):
方法一:强制统一web包版本
firebase_auth的移动端实现(Android/iOS)并不依赖web包,只有web端的firebase_auth_web需要旧版本的web包。我们可以通过dependency_overrides强制指定web包为geolocator需要的^1.0.0版本——虽然web端的依赖会显示冲突,但完全不会影响移动端的编译和运行。
在pubspec.yaml中添加如下配置:
dependency_overrides: web: ^1.0.0
添加后执行flutter pub get,即可正常拉取两个包的最新版本,随后编译Android或iOS项目即可。
方法二:明确指定仅支持移动端平台
在pubspec.yaml的flutter区块中声明仅支持Android和iOS平台,让Pub在解析依赖时忽略web相关的依赖项,从根源上避免web包的版本冲突:
flutter: platforms: android: ios:
这种方法可以配合方法一一起使用,进一步确保依赖解析不会被web端依赖干扰。
注意事项
以上方法仅适用于仅针对移动端开发的Flutter应用。如果后续需要扩展支持web平台,你需要等待firebase_auth官方更新依赖以兼容web ^1.0.0,或者暂时降级其中一个包的版本。
内容的提问来源于stack exchange,提问作者XeeMpee
相关产品推荐
相关产品推荐

