You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中引入GitHub Packages组织公开仓库依赖时出现403 Forbidden错误的求助

Android Studio中引入GitHub Packages组织公开仓库依赖时出现403 Forbidden错误的求助

看起来你遇到的这个403问题确实挺闹心的——明明代码仓库是公开的,外部用户也准备了带read:packages权限的PAT,结果还是拉取不到依赖。我来帮你梳理几个最可能的原因和排查方向:

1. 先检查GitHub Packages的包可见性(最关键!)

这是很多人踩坑的点:代码仓库公开 ≠ 发布的包也公开。即使你的代码仓库设为公开,你上传到GitHub Packages的包可能默认是Internal(仅组织成员可见)或者Private:

  • 登录GitHub,进入你的组织的「Packages」页面,找到这个库对应的包
  • 查看包的「Visibility」设置,如果不是Public,改成公开状态
  • 注意:包的可见性一旦设为公开就无法改回私有,确认没问题再操作

2. 核对Gradle配置的细节准确性

2.1 仓库URL与包信息的拼写/大小写

GitHub的URL是大小写敏感的,Maven的group/artifact ID虽然理论上不区分大小写,但实际拉取时如果和发布的不一致,可能触发权限拦截:

  • 检查settings.gradle.kts里的仓库URL:https://maven.pkg.github.com/organization_name/repository_name,组织名、仓库名必须和GitHub上的完全一致(包括大小写)
  • 检查libs.version.toml里的group、name、version是否和你发布时的完全匹配。比如你发布的groupId是com.yourorg.yourlib,但配置里写的是groupid,这会请求一个不存在的路径,进而返回403(而非预期的404,因为GitHub会对未授权的路径访问返回403)

2.2 认证信息的正确性

外部用户的PAT配置可能存在细节错误:

  • 确保PAT确实勾选了read:packages权限(创建PAT时要在「packages」板块勾选这个权限)
  • 认证的username可以是用户的GitHub用户名,或者直接写token(GitHub允许用token作为用户名,密码填PAT),别用邮箱作为username,这会导致认证失败
  • 建议让用户用环境变量代替硬编码,避免拼写错误:
    maven {
        url = uri("https://maven.pkg.github.com/organization_name/repository_name")
        credentials {
            username = System.getenv("GITHUB_USER")
            password = System.getenv("GITHUB_TOKEN")
        }
    }
    

3. 排查组织级的GitHub Packages限制

有些组织会设置额外的权限规则:

  • 进入组织的「Settings > Packages」页面,查看是否有「Restrict package access」之类的设置,是否禁止了外部用户拉取公开包
  • 检查组织的「Settings > Member privileges」,确认没有对Packages的全局访问限制

4. 测试匿名拉取(快速验证)

如果包确实设为公开,理论上可以尝试匿名拉取,快速定位问题:

  • 让外部用户暂时注释掉credentials块,直接拉取依赖
  • 如果匿名能成功,说明之前的PAT配置有问题;如果还是403,那肯定是包的可见性或组织设置的问题

5. 确认你发布时的配置正确性

最后再核对下你自己发布时的Gradle配置:

  • 发布时的Maven仓库URL必须是仓库级的(https://maven.pkg.github.com/organization_name/repository_name),而不是组织级的(https://maven.pkg.github.com/organization_name)
  • 发布时的groupId、artifactId、version必须和外部用户引用的完全一致

你可以先从「包可见性」这个点开始排查,这是最常见的原因。如果还是不行,让外部用户把./gradlew build --info的完整日志发出来,能看到更详细的认证和请求细节,方便进一步定位。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 14:24:37