Browse Source

Android App Bundle support

Update
Update
Update
QGC4.4
Don Gagne 3 years ago committed by Don Gagne
parent
commit
02f81e9162
  1. 14
      .github/workflows/android_release.yml
  2. 19
      QGCCommon.pri
  3. 16
      QGCPostLinkInstaller.pri
  4. BIN
      android/android_release.keystore

14
.github/workflows/android_release.yml

@ -15,6 +15,7 @@ defaults:
env: env:
SOURCE_DIR: ${{ github.workspace }} SOURCE_DIR: ${{ github.workspace }}
QT_VERSION: 5.15.2 QT_VERSION: 5.15.2
ARTIFACT: QGroundControl.aab
jobs: jobs:
build: build:
@ -90,6 +91,8 @@ jobs:
- name: Build - name: Build
working-directory: ${{ runner.temp }}/shadow_build_dir working-directory: ${{ runner.temp }}/shadow_build_dir
env:
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
run: | run: |
if [ $GIT_BRANCH_NAME == "Stable*" ]; then if [ $GIT_BRANCH_NAME == "Stable*" ]; then
echo "Stable build" && echo "Stable build" &&
@ -98,12 +101,19 @@ jobs:
echo "Daily build" && echo "Daily build" &&
export STABLE_OR_DAILY=DailyBuild; export STABLE_OR_DAILY=DailyBuild;
fi fi
qmake -r ${SOURCE_DIR}/qgroundcontrol.pro -spec android-clang CONFIG+=${STABLE_OR_DAILY} ANDROID_ABIS="armeabi-v7a arm64-v8a" qmake -r ${SOURCE_DIR}/qgroundcontrol.pro -spec android-clang CONFIG+=installer CONFIG+=${STABLE_OR_DAILY} ANDROID_ABIS="armeabi-v7a arm64-v8a"
make -j2 apk make -j2 aab
- name: ccache post-run - name: ccache post-run
run: ccache -s run: ccache -s
- name: Save artifact
uses: actions/upload-artifact@master
with:
if: github.event_name == 'push'
name: ${{ env.ARTIFACT }}
path: ${{ runner.temp }}/shadow_build_dir/package/${{ env.ARTIFACT }}
# Currently disabled since credentials are not working correctly # Currently disabled since credentials are not working correctly
- name: Upload to S3 Bucket - name: Upload to S3 Bucket
if: ${{ false }} if: ${{ false }}

19
QGCCommon.pri

@ -68,7 +68,7 @@ linux {
} else:equals(ANDROID_TARGET_ARCH, x86) { } else:equals(ANDROID_TARGET_ARCH, x86) {
CONFIG += Androidx86Build CONFIG += Androidx86Build
DEFINES += __androidx86__ DEFINES += __androidx86__
message("Android Arm build") message("Android x86 build")
} else { } else {
error("Unsupported Android architecture: $${ANDROID_TARGET_ARCH}") error("Unsupported Android architecture: $${ANDROID_TARGET_ARCH}")
} }
@ -166,15 +166,18 @@ exists ($$PWD/.git) {
message(GIT_DESCRIBE $${GIT_DESCRIBE}) message(GIT_DESCRIBE $${GIT_DESCRIBE})
# determine if we're on a tag matching vX.Y.Z (stable release) # Pull the version info from the last annotated version tag
contains(GIT_DESCRIBE, v[0-9]+.[0-9]+.[0-9]+) { # Stable builds will be in the format v#.#.#
# release version "vX.Y.Z" # Daily builds on master will be in format d#.#.#
contains(GIT_DESCRIBE, ^[vd][0-9]+.[0-9]+.[0-9]+.*) {
message( release version "vX.Y.Z")
GIT_VERSION = $${GIT_DESCRIBE} GIT_VERSION = $${GIT_DESCRIBE}
VERSION = $$replace(GIT_DESCRIBE, "v", "") VERSION = $$replace(GIT_DESCRIBE, "v", "")
VERSION = $$replace(GIT_DESCRIBE, "d", "")
VERSION = $$replace(VERSION, "-", ".") VERSION = $$replace(VERSION, "-", ".")
VERSION = $$section(VERSION, ".", 0, 3) VERSION = $$section(VERSION, ".", 0, 3)
} else { } else {
# development version "Development branch:sha date" message(development version "Development branch:sha date")
GIT_VERSION = "Development $${GIT_BRANCH}:$${GIT_HASH} $${GIT_TIME}" GIT_VERSION = "Development $${GIT_BRANCH}:$${GIT_HASH} $${GIT_TIME}"
VERSION = 0.0.0 VERSION = 0.0.0
} }
@ -194,6 +197,7 @@ exists ($$PWD/.git) {
} }
AndroidBuild { AndroidBuild {
message(VERSION $${VERSION})
MAJOR_VERSION = $$section(VERSION, ".", 0, 0) MAJOR_VERSION = $$section(VERSION, ".", 0, 0)
MINOR_VERSION = $$section(VERSION, ".", 1, 1) MINOR_VERSION = $$section(VERSION, ".", 1, 1)
PATCH_VERSION = $$section(VERSION, ".", 2, 2) PATCH_VERSION = $$section(VERSION, ".", 2, 2)
@ -225,10 +229,11 @@ AndroidBuild {
DEV_VERSION = $$join(DEV_VERSION, "", "0") DEV_VERSION = $$join(DEV_VERSION, "", "0")
} }
# Bitness is 66/34 instead of 64/32 in because of a required version number bump screw-up ages ago
equals(ANDROID_TARGET_ARCH, arm64-v8a) { equals(ANDROID_TARGET_ARCH, arm64-v8a) {
ANDROID_BITNESS = 64 ANDROID_BITNESS = 66
} else { } else {
ANDROID_BITNESS = 32 ANDROID_BITNESS = 34
} }
# Version code format: BBMIPPDDD (B=Bitness, I=Minor) # Version code format: BBMIPPDDD (B=Bitness, I=Minor)

16
QGCPostLinkInstaller.pri

@ -56,16 +56,14 @@ installer {
QMAKE_POST_LINK += && tar -cj --exclude='package' -f package/QGroundControl.tar.bz2 staging --transform 's/$${DESTDIR}/qgroundcontrol/' QMAKE_POST_LINK += && tar -cj --exclude='package' -f package/QGroundControl.tar.bz2 staging --transform 's/$${DESTDIR}/qgroundcontrol/'
} }
AndroidBuild { AndroidBuild {
QMAKE_POST_LINK += && mkdir -p package _ANDROID_KEYSTORE_PASSWORD = $$(ANDROID_KEYSTORE_PASSWORD)
QMAKE_POST_LINK += && make apk_install_target INSTALL_ROOT=android-build/ isEmpty(_ANDROID_KEYSTORE_PASSWORD) {
QMAKE_POST_LINK += && androiddeployqt --input android-libQGroundControl.so-deployment-settings.json --output android-build --deployment bundled --gradle --sign $${SOURCE_DIR}/android/android_release.keystore dagar --storepass $$(ANDROID_STOREPASS) message(Skipping androiddeployqt since keystore password is not available)
contains(QT_ARCH, arm) {
QGC_APK_BITNESS = "32"
} else:contains(QT_ARCH, arm64) {
QGC_APK_BITNESS = "64"
} else { } else {
QGC_APK_BITNESS = "" QMAKE_POST_LINK += && mkdir -p package
QMAKE_POST_LINK += && make apk_install_target INSTALL_ROOT=android-build/
QMAKE_POST_LINK += && androiddeployqt --verbose --input android-QGroundControl-deployment-settings.json --output android-build --release --aab --sign $${SOURCE_DIR}/android/android_release.keystore QGCAndroidKeyStore --storepass $$(ANDROID_KEYSTORE_PASSWORD)
QMAKE_POST_LINK += && cp android-build/build/outputs/bundle/release/android-build-release.aab package/QGroundControl.aab
} }
QMAKE_POST_LINK += && cp android-build/build/outputs/apk/android-build-release-signed.apk package/QGroundControl$${QGC_APK_BITNESS}.apk
} }
} }

BIN
android/android_release.keystore

Binary file not shown.
Loading…
Cancel
Save