我刚刚为我的React Native应用制作了一个新的Android捆绑包。我在android / app / build.gradle中将版本代码从90手动更新为91,但是现在我尝试上传到Play商店,版本代码为3145819(我希望看到91)
build.gradle:
defaultConfig {
applicationId "com.myapp"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 91
versionName "4.1.0"
multiDexEnabled true
missingDimensionStrategy "RNN.reactNativeVersion", "reactNative57_5"
resValue "string", "build_config_package", "com.myapp"
}
我使用此命令捆绑:
./gradlew bundleProdRelease --console plain
不确定为什么会这样,我绝对更喜欢较小的版本代码(在报告错误时,用户更容易阅读)。
有什么想法,怎么解决?
答案 0 :(得分:1)
我有同样的问题。每当我运行 ./ gradlew bundleRelease 而我更改
时,就会发生这种情况def enableSeparateBuildPerCPUArchitecture = false
到
def enableSeparateBuildPerCPUArchitecture = true
此功能可在 android / app / build.gradle
中找到除了将 enableSeparateBuildPerCPUArchitecture 更改回 false
之外,我不确定如何停止它答案 1 :(得分:1)
哦,好吧,我终于想通了!不,在过去的两年里,我并没有拼命地寻找答案......我现在只是不知何故偶然发现了它。
因此,在 android/app/build.gradle
中,有一个生成包版本代码的脚本。它是根据版本代码和目标架构版本代码计算得出的。例如在 RN 0.64x template:
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) {
output.versionCodeOverride = defaultConfig.versionCode * 1000 + versionCodes.get(abi)
}
对我来说,arm64-v8a
在生成版本代码时似乎总是被用作默认值,所以我得到如下输出:
versionCode 1 => 1003
versionCode 12 => 12003
versionCode 105 => 105003
you get the idea...
过去的计算涉及一个更神秘的数字(1048576
??♂️,见RN 0.59x template),这似乎是任意的,并且很难理解这个捆绑版本代码是如何生成。
现在更有意义了!
答案 2 :(得分:0)