praveen prasad
Estoy usando React native con Android. ¿Cómo puedo actualizar el número de versión en la aplicación? Como estoy recibiendo este error.
Estoy generando un archivo según esta url
https://facebook.github.io/react-native/docs/signed-apk-android.html
Intenté 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.
jose roque
Deberías estar cambiando tu versionCode
y versionName
en android/app/build.gradle
:
android {
defaultConfig {
versionCode 1
versionName "1.0"
{...}
}
{...}
}
Tenga en cuenta que versionCode
tiene que estar en un número entero que es más grande que los que se utilizan para las versiones anteriores, mientras que versionName
es la versión legible por humanos que se puede mostrar a los usuarios.
-
Encontré la solución en el archivo que señalaste, pero en realidad estaba un poco más abajo. Había una sección que comenzaba con aplicaciónVariantes y ahí dentro el salida.versionCodeOverride se estaba configurando, que hizo lo que sugería el nombre y anuló el que estaba en la parte superior del archivo.
– Aiden Montgomery
18 mayo 2016 a las 12:01
-
@Noitidart si está construyendo con Android Studio y Gradle, cambiarlo aquí será suficiente. Anulará cualquier cosa que pongas en AndroidManifest.xml
– José Roque
6 jun 2017 a las 20:20
-
Si quiero que mi versión sea “2.2”, debo establecer versionCode en
2.2
? no entiendoversionCode
🙁– Noitidart
14 de noviembre de 2017 a las 23:53
-
@Noitidart
versionCode
es un valor destinado a Google/usted. Cuando subes a Google Play, esperaversionCode
ser mayor que el anteriorversionCode
, y también único para cada archivo subido. Personalmente, solo incremento manualmenteversionCode
por uno cada vez que preparo una subida a 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.– José Roque
15 de noviembre de 2017 a las 2:27
-
@KTWorks sí, versionCode debe ser un número entero. versionName se puede establecer en
1.0.1
y mostrará ese valor a los usuarios.– José Roque
29 de abril de 2018 a las 15:08
tgf
@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
es 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; es por eso que está vinculado a las confirmaciones de git 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-407469707661
-
Andrew Jack analiza un método muy similar y un método para iOS en su artículo de Medium: medium.com/@andr3wjack/… . Es una gran lectura para las personas que desean que sus versiones coincidan con sus compilaciones.
– DBbrown
17 de marzo de 2017 a las 3:59
-
¿Significa que cada vez que usé git cometer la versión cambia de forma incremental? ¿Y qué tipo de actualización se incrementa? Quiero decir, ¿comenzará en el número de parche?
– Edison Pebojot
2 de marzo de 2021 a las 11:28
-
@EdisonPebojot Sí, aunque solo cambiará una de las versiones. Hay dos tipos de versión: el código de versión que debe ser incremental y se basa en la cantidad de confirmaciones. Y el versionName que se toma de su paquete.json puede ser una cadena y es visible para el usuario. Es posible que desee leer esta respuesta: stackoverflow.com/a/10269683/1760776 para obtener más detalles
– tgf
2 de marzo de 2021 a las 22:23
-
El artículo de Andrew Jack en Medium ha sido eliminado. Sin embargo, aquí está su publicación de blog sobre el tema: blog.andrewjack.uk/versioning-react-native-apps.
– Hal Müller
13 de diciembre de 2021 a las 3:51
-
Necesito cambiar maestro a principal
def process = "git rev-list main --first-parent --count".execute()
– robersonfox
26 ene a las 23:47
François Nadeau
Para aquellos que quieran automatizar esto y tener iOS al mismo tiempo, pueden usar versión nativa de reacción para establecer los números de versión.
Todo lo que necesita hacer es actualizar su versión número dentro del archivo package.json y ejecute 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.
-
Si se ha expulsado de la exposición, asegúrese de eliminar app.json; de lo contrario, los archivos de Android e iOS no se actualizarán.
–Bjorn Reppen
3 de febrero de 2021 a las 16:50
-
@bjorn-reppen Eliminar app.json en proyectos de Bare Workflow Expo no es la mejor solución, ya que Expo todavía usa App.json (Actualizaciones, por ejemplo) El problema se discute aquí: github.com/stovmascript/react-native-version/issues/105 Parcheé react-native-version 4.0.0 como una solución temporal hasta que se solucione.
– ChrisW
16 de julio de 2021 a las 20:08
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.
- La versión puede ser un número decimal como 1.0 o 1.0.1, etc.
- Pero VersionCode no puede ser un número decimal Debería ser 1,2,3, etc. y no 1.1 o 2.2
Así que en proyecto/aplicación/construir.gradle
android {
defaultConfig {
versionCode 1 // do not use decimal number here
versionName "1.0" // you can use decimal number here.
{...}
}
{...}
}
Selecciona el versionCode
por debajo android
en aplicación.json:
{
"expo": {
"name": "App Name",
...
"android": {
"package": "com.app.name",
"permissions": [],
"versionCode": 2
}
}
}
kvadityaaz
Si alguien se enfrenta
código de versión incorrecto, por ejemplo, – 31284
Entonces 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"
{...}
}
{...}
}
si estás usando exposición y obtener este problema, vaya a app.json
y cambiar el versión a un número mayor.
{
"expo": {
"name": "nameofapp", // btw dont copy this
"slug": "appslug", // btw dont copy this
"version": "1.0.0", // here is where you change the version
...
...
...
}
}
También debe cambiar el versión en package.json
{
...
"name": "appname", // btw dont copy this
"version": "2.0.0", // here is where you change the version
...
"android": {
"versionCode": 2,
...
}
...
}
android:versionCode=”2″ significa que cada vez que desee cargar una aplicación en Play Store, es necesario aumentar el código de versión y el código de versión, puede conservar lo que quiera sin impacto
– Ajinkya
10 de marzo de 2016 a las 18:48
no funciona, ya lo he hecho. He corregido mi pregunta.
– Praveen Prasad
10 de marzo de 2016 a las 18:49