如何将APK发布到GitHub个人主页的Packages标签页?
如何将APK发布到GitHub Packages标签页
GitHub Packages本身没有专门针对APK的注册表,但你可以使用**Generic Registry(通用注册表)**来上传APK文件,它支持任意类型的二进制文件。以下是具体实现步骤:
1. 创建具备权限的GitHub个人访问令牌(PAT)
- 打开GitHub,点击右上角头像进入「Settings」
- 左侧菜单找到「Developer settings」,进入后选择「Personal access tokens」下的「Tokens (classic)」
- 点击「Generate new token」,勾选
write:packages和repo权限,生成并复制令牌值 - 进入你的仓库页面,点击「Settings」→「Secrets and variables」→「Actions」,点击「New repository secret」,命名为
GH_TOKEN,粘贴刚才的令牌值保存
2. 修改GitHub Actions工作流,添加上传步骤
在你构建APK的工作流文件(比如.github/workflows/build-apk.yml)中,添加上传到Generic Registry的步骤。以下提供两种实现方式:
方式一:使用GitHub CLI
确保工作流环境已包含GitHub CLI(GitHub Actions默认环境已预装),添加如下步骤:
- name: Upload APK to GitHub Generic Packages env: GH_TOKEN: ${{ secrets.GH_TOKEN }} run: | # 替换为你的APK实际路径和版本标识(可使用Commit SHA、自定义版本号或Git标签) APK_PATH="build/outputs/apk/release/Paadas-release.apk" VERSION="${{ github.sha }}" gh package upload sameermahajan/Paadas/apk --file "$APK_PATH" --version "$VERSION" --yes
方式二:使用GitHub API(curl)
如果不想依赖GitHub CLI,可直接通过API上传:
- name: Upload APK to GitHub Generic Packages env: GH_TOKEN: ${{ secrets.GH_TOKEN }} APK_PATH: "build/outputs/apk/release/Paadas-release.apk" PACKAGE_NAME: "Paadas" VERSION: "${{ github.sha }}" run: | curl -X PUT \ -H "Authorization: token $GH_TOKEN" \ -H "Content-Type: application/vnd.android.package-archive" \ "https://maven.pkg.github.com/sameermahajan/$PACKAGE_NAME/${PACKAGE_NAME}-$VERSION.apk" \ --data-binary "@$APK_PATH"
3. 在Packages标签页查看上传的APK
上传完成后,回到你的GitHub个人主页的「Packages」标签页:
- 默认列表仅展示Docker、Maven等6类常见注册表的包,需在页面顶部搜索框中搜索你的包名(比如
Paadas/apk),即可找到上传的APK包 - 点击包详情页,即可查看和下载APK文件
替代方案:使用GitHub Releases(更适合APK分发)
如果你的核心需求是方便用户下载APK,GitHub Releases是更合适的选择——它专门用于发布软件版本,用户可直观看到所有版本的APK文件。只需在工作流中添加如下步骤:
- name: Upload APK to GitHub Releases uses: softprops/action-gh-release@v1 with: files: ${{ env.APK_PATH }} tag_name: v${{ env.VERSION }} env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
内容的提问来源于stack exchange,提问作者Sameer Mahajan
相关产品推荐
相关产品推荐

