Flutter packages get在Bitbucket认证失败后无法重新发起认证如何解决?
解决Flutter Packages Get不再发起Bitbucket HTTPS认证的问题
我明白你遇到的麻烦了——第一次输错Bitbucket凭证中断后,Flutter就不再触发认证请求,反而报错找不到私有包的pubspec.yaml。这其实是因为Dart和Git的缓存机制在搞鬼:第一次失败的克隆操作留下了不完整的仓库缓存,后续命令直接复用这个错误缓存,跳过了认证步骤。
下面是几个能让认证重新触发的解决方案,按顺序尝试即可:
1. 清除Dart的Git缓存目录
Dart会把Git依赖的克隆副本存在本地缓存里,我们需要删掉对应仓库的缓存:
- Windows:打开文件资源管理器,导航到
%LOCALAPPDATA%\Pub\Cache\git,找到名为my-library-xxxxxx的文件夹(xxxxxx是随机后缀),删除它。 - macOS/Linux:在终端执行
rm -rf ~/.pub-cache/git/my-library-*,直接清除所有和这个仓库相关的缓存。
2. 清理当前项目的本地缓存
在你的Flutter项目根目录,执行以下操作:
- 删除
.dart_tool文件夹(这是Dart的工具缓存目录) - 删除
pubspec.lock文件(记录已安装依赖的版本信息) - 运行命令:
flutter clean flutter packages get
这一步会强制项目重新拉取所有依赖,包括你的私有包。
3. 清除系统级的HTTPS凭证缓存
如果上面的步骤没用,可能是系统记住了错误的凭证,或者没正确存储正确的凭证:
- Windows:打开「控制面板 → 用户账户 → 凭据管理器 → Windows凭据」,搜索包含
bitbucket.org的条目,删除后重新执行flutter packages get。 - macOS:打开「钥匙串访问」,搜索
bitbucket.org,删除对应的HTTPS凭证条目,再重新拉取依赖。 - Linux:根据你使用的Git凭证助手,比如如果用的是
gnome-keyring,打开系统钥匙串删除Bitbucket相关条目;或者执行git config --global --unset credential.helper临时禁用凭证缓存,拉取成功后再重新设置。
4. 手动触发Git认证(备选方案)
如果还是不行,可以先手动克隆你的私有仓库,让系统记住正确的凭证:
git clone https://bitbucket.org/my-library.git
输入正确的Bitbucket用户名和密码完成克隆后,回到Flutter项目执行flutter packages get,此时Git会复用已存储的正确凭证,Flutter就能正常拉取依赖了。
按上面的步骤操作后,flutter packages get应该会重新发起认证请求,或者直接使用已存储的正确凭证,顺利拉取你的私有Widget包。
内容的提问来源于stack exchange,提问作者James M. Lay




