一、配置androidGitVersion,通过它可以自动生成versionCode和versionName(注:需要通过git tag 的方式提交才会生成)
1、在项目build.gradle文件中引入androidGitVersion
需要先把maven { url "https://plugins.gradle.org/m2/" } 加入repositories中
然后导入 classpath "gradle.plugin.com.gladed.gradle.androidgitversion:gradle-android-git-version:4.0.7
2、在主module中添加
apply plugin: 'com.gladed.androidgitversion'
二、.gitlab-ci.yml文件配置(配置脚本运行的环境,主要在指定目录生成apk包,并配置build和deploy的运行条件,此处只有在tag push的时候才进行huild和deploy操作)
variables:
ANDROID_HOME: /home/runner/opt/android_sdk
ANDROID_NDK_HOME: /home/runner/opt/android_ndk
stages:
- build
- deploy
assembleRelease:
stage: build
script: ./gradlew assembleRelease
artifacts:
paths:
- app/build/outputs/apk/a/release/*
only:
- tags
deploy:
stage: deploy
script: ./script/deploy.sh
only:
- tags
三、deploy.sh文件配置(在指定地址生成版本更新信息的json串,apk通过获取它来判断是否有新的更新)
#!/bin/bash
./gradlew --quiet androidGitVersion | sed 's/androidGitVersion.name/version/' \
| sed 's/androidGitVersion.code/versionCode/' \
| awk 'BEGIN{print "{"} {printf "%s\"%s\":\"%s\"",sep,$1,$2; sep=",\n"} END{print "\n}"}' > update.json
scp app/build/outputs/apk/a/release/*.apk ubuntu@192.168.1.1:/var/www/html/b/apk/
scp update.json ubuntu@192.168.1.1:/var/www/html/b/apk/
本文介绍了如何在Android Studio中结合git工具自动管理版本。首先,通过androidGitVersion插件自动生成versionCode和versionName,依赖git tag提交。接着配置.gitlab-ci.yml文件,确保仅在tag push时执行构建和部署操作。最后,部署.sh脚本用于生成版本更新信息JSON,供apk检查更新。
568





