diff --git a/android/app/build.gradle b/android/app/build.gradle index c89308e..a6242a0 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -1,13 +1,29 @@ -import groovy.json.JsonSlurper - apply plugin: "com.android.application" apply plugin: "org.jetbrains.kotlin.android" apply plugin: "com.facebook.react" // Read version from package.json def getVersionFromPackageJson() { - def packageJson = new JsonSlurper().parse(file("../../package.json")) - return packageJson.version + def packageJsonText = file("../../package.json").getText("UTF-8") + def versionMatcher = (packageJsonText =~ /"version"\s*:\s*"([^"]+)"/) + if (versionMatcher.find()) { + return versionMatcher.group(1) + } + return "1.0.0" +} + +// Convert semver (major.minor.patch) to monotonic Android versionCode. +// Example: 1.4.1 -> 10401 +def getVersionCodeFromPackageJson() { + def version = getVersionFromPackageJson() + def numericPart = version.tokenize('-')[0] + def parts = numericPart.tokenize('.') + + int major = parts.size() > 0 ? parts[0].toInteger() : 1 + int minor = parts.size() > 1 ? parts[1].toInteger() : 0 + int patch = parts.size() > 2 ? parts[2].toInteger() : 0 + + return major * 10000 + minor * 100 + patch } /** @@ -90,7 +106,7 @@ android { applicationId "com.flickv4" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 + versionCode getVersionCodeFromPackageJson() versionName getVersionFromPackageJson() } signingConfigs { diff --git a/android/gradle.properties b/android/gradle.properties index 417891f..1d9f220 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -29,7 +29,7 @@ android.useAndroidX=true # Use this property to specify which architecture you want to build. # You can also override it from the CLI using # ./gradlew -PreactNativeArchitectures=x86_64 -reactNativeArchitectures=arm64-v8a +reactNativeArchitectures=arm64-v8a,armeabi-v7a # Use this property to enable support to the new architecture. # This will allow you to use TurboModules and the Fabric render in diff --git a/builds/android/1.4.1/app-release.apk b/builds/android/1.4.1/app-release.apk index fa201bb..7ae9e91 100644 Binary files a/builds/android/1.4.1/app-release.apk and b/builds/android/1.4.1/app-release.apk differ diff --git a/package.json b/package.json index 292b7dd..a414f7c 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,12 @@ { "name": "Flickv4", - "version": "1.4.0", + "version": "1.4.1", "private": true, "scripts": { "clean:android": "cd android && ./gradlew clean", "android": "react-native run-android", "build:android": "react-native run-android --mode=release", + "assemble:android": "cd android && ./gradlew clean && ./gradlew assembleRelease", "ios": "react-native run-ios", "lint": "eslint .", "start": "react-native start --reset-cache",