大数跨境

CICD自动打包安卓签名apk——无相无界(4)—东方仙盟

CICD自动打包安卓签名apk——无相无界(4)—东方仙盟 未来之窗软件服务中心
2026-04-30
7

完整逐行解释

yaml

name: Build & Upload to Release

给这个自动化任务起名:构建并上传到 Release


yaml

on:
push:
branches:[ main ]
workflow_dispatch:

什么时候自动运行?

  1. 代码推送到 main 分支时 自动运行
  2. 也可以在 GitHub 页面 手动点击运行

yaml

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write

  • 在 Ubuntu 最新系统 上运行
  • 赋予 写入权限(用来创建发布版本)

yaml

steps:
-uses: actions/checkout@v4

第一步:把你的 GitHub 代码下载到虚拟机


yaml

name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version:'17'
distribution:'temurin'

第二步:安装 Java 17(Android 编译必须)


yaml

-name: Setup Gradle 8.7
uses: gradle/actions/setup-gradle@v3
with:
gradle-version:'8.7'

第三步:安装 Gradle 8.7(Android 构建工具)


==============================================

✅ 这一段是 新增的:自动生成签名

==============================================

yaml

-name: Generate signing keystore
run:|
    cd 未来之窗项目目录
    keytool -genkey -v \
      -keystore app/keystore.jks \
      -alias release \
      -keyalg RSA -keysize 2048 -validity 36500 \
      -storepass release -keypass release \
      -dname "CN=App"

作用:自动生成 Android 签名文件(jks)

  • 签名文件名:keystore.jks
  • 密码:release
  • 有效期:100 年
  • 这是打包正式版 APK 必须的文件,以前要手动生成,现在自动生成

==============================================

✅ 这一段是 新增的:自动写入签名配置

==============================================

yaml

-name: Write signing config
run:|
    cd 未来之窗项目目录
    echo "KEYSTORE_FILE=keystore.jks" >> local.properties
    echo "KEYSTORE_PASSWORD=release" >> local.properties
    echo "KEY_ALIAS=release" >> local.properties
    echo "KEY_PASSWORD=release" >> local.properties

作用:把签名信息写入配置文件让 Android 项目知道:

  • 用哪个签名文件
  • 密码是什么
  • 别名是什么

这样打包时自动使用签名,不会报错。


==============================================

✅ 原来的构建命令(不变)

==============================================

yaml-name: Build Release APK
run:|
    cd fairyalliancesmartphoneanswer
    gradle assembleRelease

作用:编译生成【正式签名版 APK】执行完就会生成可直接安装的正式版 APK


yaml

-name: Create Version Tag
id: tag
run: echo "tag=v$(date +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT

生成版本号,例如:v202512291530(年月日 + 时间,保证每次版本号唯一)


yaml

-name: Upload to GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.tag.outputs.tag }}
name:"FairyAlliance 智能接听 ${{ steps.tag.outputs.tag }}"
body:"自动接听 + 铃声播报 APP"
files: 未来之窗项目目录/app/build/outputs/apk/release/*.apk
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

最后一步:自动发布到 GitHub Releases

  • 发布名称:FairyAlliance 智能接听 v2025xxx
  • 描述:自动接听 + 铃声播报 APP
  • 上传:签好名的正式版 APK
  • 别人可以直接下载安装

用最简单的话总结这段代码

这段代码比你原来的代码多了两个关键功能

  1. 自动生成 Android 签名文件(jks)
  2. 自动配置签名信息

最终实现:👉 代码一推 → 自动签名 → 自动打包 → 自动发布 Releases

自动构建CI/CD  yml脚本

Continuous Integration  / Continuous Deployment 发布到release 签名

name: Build & Upload to Release
on:  push:    branches: [ main ]  workflow_dispatch:
jobs:  build:    runs-on: ubuntu-latest    permissions:      contents: write
    steps:      - uses: actions/checkout@v4
      - name: Set up JDK 17        uses: actions/setup-java@v4        with:          java-version: '17'          distribution: 'temurin'
      - name: Setup Gradle 8.7        uses: gradle/actions/setup-gradle@v3        with:          gradle-version: '8.7'
      # ==============================================      # ✅ 自动随机生成签名(唯一加的部分)      # ==============================================      - name: Generate signing keystore        run: |          cd 未来之窗项目目录          keytool -genkey -v \            -keystore app/keystore.jks \            -alias release \            -keyalg RSA -keysize 2048 -validity 36500 \            -storepass release -keypass release \            -dname "CN=App"
      # ==============================================      # ✅ 自动写入签名配置      # ==============================================      - name: Write signing config        run: |          cd 未来之窗项目目录          echo "KEYSTORE_FILE=keystore.jks" >> local.properties          echo "KEYSTORE_PASSWORD=release" >> local.properties          echo "KEY_ALIAS=release" >> local.properties          echo "KEY_PASSWORD=release" >> local.properties
      # ==============================================      # ✅ 你原本的构建命令(完全不变)      # ==============================================      - name: Build Release APK        run: |          cd fairyalliancesmartphoneanswer          gradle assembleRelease
      - name: Create Version Tag        id: tag        run: echo "tag=v$(date +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT
      - name: Upload to GitHub Release        uses: softprops/action-gh-release@v2        with:          tag_name: ${{ steps.tag.outputs.tag }}          name: "FairyAlliance 智能接听 ${{ steps.tag.outputs.tag }}"          body: "自动接听 + 铃声播报 APP"          files: 未来之窗项目目录/app/build/outputs/apk/release/*.apk        env:          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

完整逐行解释

yamlname: Build & Upload to Release

给这个自动化任务起名:构建并上传到 Release


yamlon:
push:
branches:[ main ]
workflow_dispatch:

什么时候自动运行?

  1. 代码推送到 main 分支时 自动运行
  2. 也可以在 GitHub 页面 手动点击运行

yamljobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write

  • 在 Ubuntu 最新系统 上运行
  • 赋予 写入权限(用来创建发布版本)

yamlsteps:
-uses: actions/checkout@v4

第一步:把你的 GitHub 代码下载到虚拟机


yaml-name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version:'17'
distribution:'temurin'

第二步:安装 Java 17(Android 编译必须)


yaml-name: Setup Gradle 8.7
uses: gradle/actions/setup-gradle@v3
with:
gradle-version:'8.7'

第三步:安装 Gradle 8.7(Android 构建工具)


==============================================

✅ 这一段是 新增的:自动生成签名

==============================================

yaml-name: Generate signing keystore
run:|
    cd 未来之窗项目目录
    keytool -genkey -v \
      -keystore app/keystore.jks \
      -alias release \
      -keyalg RSA -keysize 2048 -validity 36500 \
      -storepass release -keypass release \
      -dname "CN=App"

作用:自动生成 Android 签名文件(jks)

  • 签名文件名:keystore.jks
  • 密码:release
  • 有效期:100 年
  • 这是打包正式版 APK 必须的文件,以前要手动生成,现在自动生成

==============================================

✅ 这一段是 新增的:自动写入签名配置

==============================================

yaml-name: Write signing config
run:|
    cd 未来之窗项目目录
    echo "KEYSTORE_FILE=keystore.jks" >> local.properties
    echo "KEYSTORE_PASSWORD=release" >> local.properties
    echo "KEY_ALIAS=release" >> local.properties
    echo "KEY_PASSWORD=release" >> local.properties

作用:把签名信息写入配置文件让 Android 项目知道:

  • 用哪个签名文件
  • 密码是什么
  • 别名是什么

这样打包时自动使用签名,不会报错。


==============================================

✅ 原来的构建命令(不变)

==============================================

yaml-name: Build Release APK
run:|
    cd fairyalliancesmartphoneanswer
    gradle assembleRelease

作用:编译生成【正式签名版 APK】执行完就会生成可直接安装的正式版 APK


yaml-name: Create Version Tag
id: tag
run: echo "tag=v$(date +'%Y%m%d%H%M')" >> $GITHUB_OUTPUT

生成版本号,例如:v202512291530(年月日 + 时间,保证每次版本号唯一)


yaml-name: Upload to GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.tag.outputs.tag }}
name:"FairyAlliance 智能接听 ${{ steps.tag.outputs.tag }}"
body:"自动接听 + 铃声播报 APP"
files: 未来之窗项目目录/app/build/outputs/apk/release/*.apk
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

最后一步:自动发布到 GitHub Releases

  • 发布名称:FairyAlliance 智能接听 v2025xxx
  • 描述:自动接听 + 铃声播报 APP
  • 上传:签好名的正式版 APK
  • 别人可以直接下载安装

用最简单的话总结这段代码

这段代码比你原来的代码多了两个关键功能

  1. 自动生成 Android 签名文件(jks)
  2. 自动配置签名信息

最终实现:👉 代码一推 → 自动签名 → 自动打包 → 自动发布 Releases



原创应该获得永久分成



原创创意共创、永久收益分成,是东方仙盟始终坚守的核心理念。我们坚信,每一份原创智慧都值得被尊重与回馈,以永久分成锚定共创初心,让创意者长期享有价值红利,携手万千伙伴向着科技星辰大海笃定前行,拥抱硅基 生命与数字智能交融的未来,共筑跨越时代的数字文明共同体。



  • 东方仙盟 

    东方仙盟:拥抱知识开源,共筑数字新生态

    在全球化与数字化浪潮中,东方仙盟始终秉持开放协作、知识共享的理念,积极拥抱开源技术与开放标准。我们相信,唯有打破技术壁垒、汇聚全球智慧,才能真正推动行业的可持续发展。

    开源赋能中小商户:通过将前端异常检测、跨系统数据互联等核心能力开源化,东方仙盟为全球中小商户提供了低成本、高可靠的技术解决方案,让更多商家能够平等享受数字转型的红利。
    共建行业标准:我们积极参与国际技术社区,与全球开发者、合作伙伴共同制定开放协议与技术规范,推动跨境零售、文旅、餐饮等多业态的系统互联互通,构建更加公平、高效的数字生态。
    知识普惠,共促发展:通过开源社区、技术文档与培训体系,东方仙盟致力于将前沿技术转化为可落地的行业实践,赋能全球合作伙伴,共同培育创新人才,推动数字经济 的普惠式增长

    阿雪技术观

    在科技发展浪潮中,我们不妨积极投身技术共享。不满足于做受益者,更要主动担当贡献者。无论是分享代码、撰写技术博客,还是参与开源项目维护改进,每一个微小举动都可能蕴含推动技术进步的巨大能量。东方仙盟是汇聚力量的天地,我们携手在此探索硅基生命,为科技进步添砖加瓦。


    Hey folks, in this wild tech - driven world, why not dive headfirst into the whole tech - sharing scene? Don't just be the one reaping all the benefits; step up and be a contributor too. Whether you're tossing out your code snippets, hammering out some tech blogs, or getting your hands dirty with maintaining and sprucing up open - source projects, every little thing you do might just end up being a massive force that pushes tech forward. And guess what? The Eastern FairyAlliance is this awesome place where we all come together. We're gonna team up and explore the whole silicon - based life thing, and in the process, we'll be fueling the growth of technology.  

    开通方法


    关注我们

    营销资讯:抖音运营,微信公众号运营,小红书运营

    网站运营:安全、备案、申请网站,漏洞扫描,数字证书

    开发:开发技巧、热点技术,人工智能,数据分析,数据优化,docker

    数据服务:数据恢复,数据安全,数据融合,数据异地容灾,数据优化,数据自动备份、数据清洗

    人工智能:智能物联网,智慧大屏幕,OCR,智慧刷脸,语音交互,智能机器人,数字生命,数字人,大模型,本地化,边缘化智能(手机模型)

    支付:微信支付服务商,支付支付服务商,刷脸支付

    安全服务:WAF安全,网安扫描,漏洞扫描,安全补丁,防火墙定制

    智慧大屏:物资耗材大屏幕,单位用餐大数据,智慧场馆大屏,销售大屏幕,智慧社区大屏幕,大厅查询机,景区自助机

    智慧酒店:酒店系统、酒店押金、酒店房价牌、酒店门锁、布草系统

    行业软件:酒店、餐饮、便利店,美发、超市,批发,景区门票,道闸,堂食,配送系统,烘培系统,健身,美容系统,月子中心系统

    物联网:智能衣柜,足浴店衣柜,售货柜,酒店自助入住机

    国产化:uos系统答疑,国产软件开发,国产服务器配置,docker

    一体化:酒店一体化(闸机,酒店系统,餐饮系统,售票,布草,无人酒店,在线订房),景区一体化(门票、餐饮、住宿、押金、超市、药店、商铺租赁,通车系统,售票大厅,大屏幕,无人景区,景区自助机)


          

    图片



【声明】内容源于网络
0
0
未来之窗软件服务中心
在线工单、售后、配送查询、附近商家 业务范围:餐饮、酒店、KTV、洗浴、客房、美容美发、糕点、POS收银系统 ;商城、团购、分销、众筹、医疗、学校、美容 ;OA、CRM、HRM;智能WIFI、产品、商家推广
内容 233
粉丝 0
未来之窗软件服务中心 在线工单、售后、配送查询、附近商家 业务范围:餐饮、酒店、KTV、洗浴、客房、美容美发、糕点、POS收银系统 ;商城、团购、分销、众筹、医疗、学校、美容 ;OA、CRM、HRM;智能WIFI、产品、商家推广
总阅读766
粉丝0
内容233