详情

首页手游攻略 GitHub自动打包Android APK的全流程实用指南

GitHub自动打包Android APK的全流程实用指南

佚名 2026-09-10 15:20:02

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“GitHub自动打包Android APK的全流程”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

目录
  • 第一章:准备魔法厨房的秘料(密钥设置)
  • 第二章:编写魔法食谱(YAML设置)
  • 第三章:启动魔法烹饪(触发流程)
  • 第四章:魔法升级技巧(高级技巧)
    • 技巧1:自动递增版本号
    • 技巧2:APK风味定制(多渠道打包)
    • 技巧3:上传Google Play(自动上架)
  • 魔法触发器对照表
    • 常用魔法事故处理

      实际处理时,下面将用「魔法厨房」的童话故事,结合示例代码为你揭秘GitHub自动打包Android APK的全流程。在这个童话里:

      • GitHub仓库 = 魔法厨房
      • YAML设置文件 = 魔法食谱
      • GitHub Actions = 自动烹饪精灵
      • 签名密钥 = 秘制香料

      第一章:准备魔法厨房的秘料(密钥设置)

      问题:如何让精灵安全采用签名密钥?

      解法:把密钥拆解成魔法卷轴藏在密室(Secrets)

      # 本地生成密钥库(魔法香料瓶)
      keytool -genkey -v -keystore magic-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias magic-alias

      将密钥信息分解为:

      1. 新建私有仓库 android-keystore 存放 magic-key.jks
      2. 在仓库添加 keystore.properties

      # 香料配方表
      storePassword=your_store_password
      keyPassword=your_key_password
      keyAlias=magic-alias
      storeFile=../keystore/magic-key.jks

      3. 在项目 Secrets 存入访问密钥仓库的 TOKEN

      第二章:编写魔法食谱(YAML设置)

      新建 .github/workflows/magic-cook.yml

      name: Android Magic Kitchen

      on:
        push:
          tags:
            - 'v*' # 当巫师打上v1.0这样的标签时触发魔法

      jobs:
        cook-apk:
          runs-on: ubuntu-latest
          steps:
            # 步骤1:召唤食材(代码)
            - name: Checkout Code
              uses: actions/checkout@v4
              with:
                token: ${{ secrets.TOKEN }} # 密室钥匙

            # 步骤2:取回秘制香料(密钥)
            - name: Fetch Magic Spices
              uses: actions/checkout@v4
              with:
                repository: YourName/android-keystore # 香料仓库
                path: keystore # 存放位置
                token: ${{ secrets.TOKEN }}

            # 步骤3:点燃炉火(JDK环境)
            - name: Ignite JDK Furnace
              uses: actions/setup-java@v3
              with:
                distribution: 'zulu'
                java-version: '17'

            # 步骤4:调配香料(注入签名信息)
            - name: Prepare Spice Mix
              run: |
                cp keystore/magic-key.jks app/
                echo "storeFile=../app/magic-key.jks" >> keystore/keystore.properties
                cat keystore/keystore.properties >> gradle.properties

            # 步骤5:烹饪APK(构建命令)
            - name: Cook Release APK
              run: ./gradlew assembleRelease # 魔法烹饪咒语

            # 步骤6:包装点心(发布Release)
            - name: Package Magic Dessert
              uses: softprops/action-gh-release@v1
              with:
                files: app/build/outputs/apk/release/*.apk
              env:
                GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # 厨房自带的魔法令牌

      第三章:启动魔法烹饪(触发流程)

      巫师只需施展两个咒语:

      # 1. 标记版本(给点心贴标签)
      git tag v1.0.0

      # 2. 推送标签(激活厨房精灵)
      git push origin v1.0.0

      精灵工作流程:

      第四章:魔法升级技巧(高级技巧)

      技巧1:自动递增版本号

      version.properties 中设置:

      # 版本魔法计数器
      versionCode=100
      versionName=1.0.0

      添加Gradle魔法脚本2:

      task incrementVersion {
        doLast {
          def versionProps = new Properties()
          file("version.properties").withInputStream { versionProps.load(it) }
          
          // 版本号自动+1
          versionProps["versionCode"] = (versionProps["versionCode"].toInteger() + 1).toString()
          file("version.properties").withWriter { versionProps.store(it, null) }
        }
      }

      技巧2:APK风味定制(多渠道打包)

      - name: Cook Flavors
        run: ./gradlew assembleFreeRelease assembleProRelease

      技巧3:上传Google Play(自动上架)

      - name: Deliver to Google Play
        uses: r0adkll/upload-google-play@v1
        with:
          serviceAccountJson: ${{ secrets.GCP_KEY }}
          packageName: com.magic.app
          releaseFiles: app/build/outputs/apk/**/*.apk

      魔法触发器对照表

      触发方式咒语示例采用场景
      标签推送 (v*)git push origin v1.0正式版本发布
      分支合并合并代码到 main 分支每日构建测试包
      手动触发点击GitHub Actions面板紧急修复打包
      定时任务 (cron)schedule: '0 3 * * *'每日凌晨3点自动构建

      常用魔法事故处理

      密钥泄露危机

      → 永远不要把 .jks 文件放在主仓库!用私有仓库存储

      版本号冲突

      → 在 gradle.properties 中添加:

      # 避免多精灵同时烹饪冲突
      org.gradle.parallel=false

      APK未签名

      → 检查 keystore.properties 路径是否匹配:

      storeFile file(keystoreProperties['storeFile'])

      童话小结:GitHub Actions就像一群勤劳的厨房精灵,只要你设置好魔法食谱(YAML),它们就能自动完成「取食材→调香料→烹制→包装」的全流程。从此巫师只需专注创造魔法(写代码),点心制作(打包)交给精灵!

      实际处理时,以上就是GitHub自动打包Android APK的全流程的详细内容,更多关于GitHub打包Android APK的资料请关注脚本之家其它相关文章!

      您可能感兴趣的文章:

      • Vue项目打包部署到GitHub Pages的实现步骤
      • vue项目打包后上传至GitHub同时实现github-pages的预览
      • vue项目打包上传github同时制作预览链接(pages)

      相关资讯
      点击查看更多
      游戏推荐
      推荐专题
      热门阅读
      推荐下载