我正在编译我的 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
}
}
}
但是我仍然找不到为什么需要将版本代码增加到一个大数字的真正原因
最佳答案
“我们需要这个,因为 ABI 中的每个 APK 都需要一个单独的版本代码,每次应用程序更新时该版本代码都会增加。此代码块为每个体系结构添加一个不同的常量到您的基本版本代码。然后每个 APK 都有自己独特的不太可能重叠的值。有关更多详细信息,请查看 ABI 拆分的 Android 文档。”
https://reactnative.thenativebits.com/courses/upgrading-react-native/upgrade-to-react-native-0.59/
因此,您需要将对版本代码的控制权“放弃”给构建系统,转而依赖于版本名称。
关于android - react native : Version code too big for Android using enableSeparateBuildPerCPUArchitecture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43965813/