You need to enable JavaScript to run this app. Flutter pubspec.yaml配置fork分支依赖报‘依赖仅能有一个来源’错误
优惠活动
大模型
产品
解决方案
定价
更多

Flutter pubspec.yaml配置fork分支依赖报‘依赖仅能有一个来源’错误

报错核心原因

两种配置均触发"A dependency may only have one source"提示,本质是配置层级不符合pub的git依赖解析规则,被校验逻辑判定为给同一个包配置了多个来源:

  • 第一种写法采用了git+url的嵌套结构,但将本属于git配置项的ref字段放到了git块的同级位置,解析器会误将独立在外的ref识别为额外的来源配置,触发拦截。
  • 第二种写法采用了url简写形式,部分新版本pub对这类跨层级配置的校验更严格,会判定为来源配置不规范,触发同类报错。
正确配置写法

优先使用兼容性最好的全嵌套结构,将所有git相关参数归入git配置块内部,不要在外层冗余其他和依赖来源相关的字段:

dependencies:
  geoflutterfire:
    git:
      url: https://github.com/[myUsername]/GeoFlutterFire
      ref: 3x_null_safety

特别提醒:不要在该依赖的配置下额外写version字段,pub会自动读取git仓库对应分支内的pubspec.yaml版本信息,手动写version会被判定为同时配置了pub官方源+git源,直接触发同类型报错。

如果偏好url简写形式,需保证git和ref字段缩进完全同级,且不新增其他来源类配置,正确示例为:

dependencies:
  geoflutterfire:
    git: https://github.com/[myUsername]/GeoFlutterFire.git
    ref: 3x_null_safety
常见排查点
  • YAML缩进需统一使用2空格格式,禁止混用tab键和空格,避免解析器识别错配置层级
  • 配置完成后可先执行flutter pub get,如果仍有报错可通过dart pub cache repair清理本地缓存后重试

内容的提问来源于stack exchange,提问作者Lara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 17:36:04