diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 24c806300e1f1c8f735872cbf9399682c67c1ac7..469c971f132c0d6987e5fb4e19618d084d2cc73f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -25,6 +25,7 @@ android:build-debug:
     # build flutter app
     - 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?
@@ -63,6 +64,7 @@ android:build-release:
       else
         flutter packages get
         flutter clean
+        flutter build apk --release --split-per-abi
         flutter build apk --release
       fi
     # prepare artifact
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 1c18897bb8e1dff4201c6ecd19c12b400fcb2ba1..1a07a0e2fb2c6ade7b6f788d0678cd819efb7838 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -62,6 +62,31 @@ android {
             signingConfig signingConfigs.release
         }
     }
+
+    splits {
+        abi {
+            reset()
+            include('armeabi-v7a', 'x86', 'x86_64')
+        }
+    }
+}
+
+ext.abiCodes = [
+    'armeabi-v7a': 1,
+    'x86': 2,
+    'x86_64': 3
+]
+
+import com.android.build.OutputFile
+
+android.applicationVariants.all { variant ->
+  variant.outputs.each { output ->
+    def baseAbiVersionCode = project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))
+
+    if (baseAbiVersionCode != null) {
+      output.versionCodeOverride = baseAbiVersionCode * 1000 + variant.versionCode
+    }
+  }
 }
 
 flutter {