React Native:使用 enableSeparateBuildPerCPUArchitecture 的 Android 版本代码太大

Sol*_*orp 5 android google-play react-native

我正在为 Android 编译我的 React Native 应用程序,将enableSeparateBuildPerCPUArchitecture 设置为 false,但是因为我读到如果我设置为 true,那么该应用程序将减少 4mb,这是真的。

所以我当前的版本代码是 9,所以我将新版本设置为 10,当我创建一个新版本并将该选项设置为true 时,我将其上传到我的 Google Play 仪表板,我意识到新版本代码不是 10,而是 1048586:/

幸运的是我没有发布那个版本,我只是删除了它,但我想知道发生了什么,如果这是正常的,如果我在此之后创建一个新版本,这个数字只会创建 1 个单元,比如 1048586 到 1048587?

谢谢!

编辑

我找到了设置版本代码的代码行

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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我仍然找不到真正的原因为什么需要将版本代码增加到一个很大的数字

pst*_*ton 1

“我们需要这个,因为 ABI 中的每个 APK 都需要一个单独的版本代码,每次应用程序更新时该版本代码都会上升。此代码块为每个体系结构添加了一个不同的常量到您的基本版本代码中。然后每个 APK 都会获得自己的不同值,这些值是不太可能重叠。有关更多详细信息,请参阅 ABI 拆分的 Android 文档。”

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

因此,您需要将 versionCode 的控制权“放弃”给构建系统,并改为依赖 versionName。