diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c2b7a9afb0ea28a91500c6c9a5cf5a66180e550e..78561506ca540497d5e364ae784d7df682e320c7 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 57e585ab125c372e3a5f6cd185ff46fee5b7417e..deeddea955d7c13ea645ef68b0c9474211167434 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 {