From 3b9f382d71e65c5ca9e0a9f456da6acd04fdc342 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Tue, 15 Oct 2024 09:19:04 +0200
Subject: [PATCH] Fix apk package name in build process

---
 .gitlab-ci.yml           | 10 ++++++++--
 android/app/build.gradle |  1 +
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c2b7a9a..7856150 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -23,12 +23,16 @@ android:build-debug:
     - echo keyAlias=$ANDROID_DEBUG_KEY_ALIAS >> android/key.properties
     - echo keyPassword=$ANDROID_DEBUG_KEY_PASSWORD >> android/key.properties
     # build flutter app
+    - VERSION_NAME="$(grep '^version:' pubspec.yaml | cut -d' ' -f2 | cut -d'+' -f1)"
+    - VERSION_CODE="$(grep '^version:' pubspec.yaml | cut -d' ' -f2 | cut -d'+' -f2)"
     - flutter packages get
     - flutter clean
     - flutter build apk --debug --split-per-abi
     - flutter build apk --debug
     # prepare artifact
-    - find . -name "*.apk" # where is my apk?
+    - BASE_APK_FOLDER="build/app/outputs/flutter-apk"
+    - for APK in ${BASE_APK_FOLDER}/*.apk; do mv -v "${APK}" "$(echo "${APK}" | sed "s|\.apk|_${VERSION_CODE}.apk|")"; done
+    - find "${BASE_APK_FOLDER}" -name "*.apk" # where are my apk?
   artifacts:
     paths:
       - build/app/outputs/flutter-apk
@@ -67,7 +71,9 @@ android:build-release:
         flutter build apk --release
       fi
     # prepare artifact
-    - find . -name "*.apk" # where is my apk?
+    - BASE_APK_FOLDER="build/app/outputs/flutter-apk"
+    - for APK in ${BASE_APK_FOLDER}/*.apk; do mv -v "${APK}" "$(echo "${APK}" | sed "s|\.apk|_${VERSION_CODE}.apk|")"; done
+    - find "${BASE_APK_FOLDER}" -name "*.apk" # where are my apk?
   artifacts:
     paths:
       - build/app/outputs/flutter-apk
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 57e585a..deeddea 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -30,6 +30,7 @@ android {
         targetSdk = flutter.targetSdkVersion
         versionCode = flutter.versionCode
         versionName = flutter.versionName
+        archivesBaseName = "$applicationId" + "_" + "$versionCode"
     }
 
     signingConfigs {
-- 
GitLab