Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

React Native: Version code too big for Android using enableSeparateBuildPerCPUArchitecture

I was compiling my React Native App for Android having enableSeparateBuildPerCPUArchitecture to false but since I read if I set to true, then the app will reduce like 4mb and it's true.

So my current version code was 9 so I set to 10 the new one and when I created a new release with that option to true I uploaded it to my Google Play dashboard and I realised the new version code is not 10 but is 1048586 :/

Fortunately I don't published that version and I just removed it but I'm wondering what happened and if that's normal and if I create a new version after that, the number will increate just 1 unit like 1048586 to 1048587?

Thanks!

EDIT

I found the line of code that set the version code

applicationVariants.all { variant ->
    variant.outputs.each { output ->
        // For each separate APK per architecture, set a unique version code as described here:
        // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
        def versionCodes = ["armeabi-v7a":1, "x86":2]
        def abi = output.getFilter(OutputFile.ABI)
        if (abi != null) {  // null for the universal-debug, universal-release variants
            output.versionCodeOverride =
                    versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
        }
    }
}

But still I couldn't find the real reason about why it's necessary to increase the version code to a big number

like image 330
SoldierCorp Avatar asked Nov 07 '22 22:11

SoldierCorp


1 Answers

"We need this because each APK in the ABI requires a separate version code which goes up each time the app updates. This code block adds a different constant for each architecture to your base version code. Each APK then get their own distinct values which are unlikely to overlap. For more details take a look at the Android documentation for ABI splits."

https://reactnative.thenativebits.com/courses/upgrading-react-native/upgrade-to-react-native-0.59/

Therefore you need to "give up control" of your versionCode to the build system and rely on the versionName instead.

like image 61
pstanton Avatar answered Nov 15 '22 12:11

pstanton