Estoy usando React native con Android. ¿Cómo puedo actualizar el número de versión en la aplicación? Como recibo este error.
Estoy generando un archivo según esta URL https://facebook.github.io/react-native/docs/signed-apk-android.html
He intentado modificar el archivo AndroidManifest.xml, pero después de compilarlo, ese archivo se vuelve a modificar automáticamente.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.facebook.react"
android:versionCode="1"
android:versionName="1.0" >
Aquí, modifiqué el XML:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.facebook.react"
android:versionCode="2"
android:versionName="1.1" >
Después, el archivo de compilación vuelve a cambiar automáticamente.
android
react-native
Praveen Prasad
fuente
fuente
Respuestas:
Deberías cambiar tu
versionCode
yversionName
enandroid/app/build.gradle
:android { defaultConfig { versionCode 1 versionName "1.0" {...} } {...} }
fuente
versionCode
es un valor que está destinado a Google / usted. Cuando subes a Google Play, se esperaversionCode
que sea mayor que el anteriorversionCode
y también único para cada archivo subido. Personalmente, solo incremento manualmenteversionCode
en uno cada vez que preparo una carga en Google Play. Otras personas lo automatizan para incrementar en función de la confirmación de git u otro factor.versionName
es lo que cambiaría a "2.2" para que sus usuarios vean ese número de versión cuando actualicen / descarguen su aplicación.1.0.1
y mostrará ese valor a los usuarios.@Joseph Roque es correcto, necesita actualizar los números de versión en
android/app/build.gradle
.Así es como automatizo esto y lo vinculo a la versión del paquete en
package.json
y git confirma.En
android/app/build.gradle
:/* Near the top */ import groovy.json.JsonSlurper def getNpmVersion() { def inputFile = new File("../package.json") def packageJson = new JsonSlurper().parseText(inputFile.text) return packageJson["version"] } /* calculated from git commits to give sequential integers */ def getGitVersion() { def process = "git rev-list master --first-parent --count".execute() return process.text.toInteger() } ...... def userVer = getNpmVersion() def googleVer = getGitVersion() android { ... defaultConfig { ..... versionCode googleVer versionName userVer ndk { abiFilters "armeabi-v7a", "x86" } }
Notas:
Es importante que
versionCode
sea un número entero, por lo que no podemos usar versiones semánticas aquí. Esto se usa en Play Store para saber qué versiones vienen después de otras; por eso está vinculado a git commits engetGitVersion
versionName
sin embargo, se muestra a los usuarios: estoy usando versiones semánticas aquí y almacenando el valor real en mipackage.json
. Gracias a https://medium.com/@andr3wjack/versioning-react-native-apps-407469707661fuente
Para aquellos que quieran automatizar esto y tengan iOS al mismo tiempo, pueden usar react-native-version para configurar los números de versión.
Todo lo que necesita hacer es actualizar su número de versión dentro del archivo package.json y ejecutar lo siguiente:
$ npx react-native-version --never-amend [RNV] Versioning Android... [RNV] Android updated [RNV] Versioning iOS... [RNV] iOS updated [RNV] Done ✨ Done in 0.39s.
Espero que esto pueda ayudar a otros.
fuente
Establezca el
versionCode
bajoandroid
en app.json:{ "expo": { "name": "App Name", ... "android": { "package": "com.app.name", "permissions": [], "versionCode": 2 } } }
ref: https://docs.expo.io/versions/latest/workflow/configuration/#versioncodeversion-number-required-by-google-play-increment-by-one-for-each-release-must-be-an -integer-httpsdeveloperandroidcomstudiopublishversioninghtml
fuente
Si alguien se enfrenta
Luego, asegúrese de no usar SeparateBuildPerCPUArchitecture en
android/app/build.gradle
def enableSeparateBuildPerCPUArchitecture = false
y
para actualizar el código de versión y el cambio de nombre en
android/app/build.gradle
:android { defaultConfig { versionCode 1 versionName "1.0" {...} } {...} }
fuente
Tuve el mismo problema y verifiqué todas las respuestas anteriores, cometí un error tonto por el cual nada funcionó para mí. En caso de que alguno de ustedes cometa el mismo error que el mío, intente esto.
Entonces en project / app / build.gradle
android { defaultConfig { versionCode 1 // do not use decimal number here versionName "1.0" // you can use decimal number here. {...} } {...} }
fuente