android - samsung - Cómo actualizar el número de versión de la aplicación nativa Reaccionar
como actualizar android samsung (4)
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 el 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 modifica 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 cambia automáticamente.
@Joseph Roque es correcto, debe actualizar los números de versión en
android/app/build.gradle
.
Así es como automatizo esto y lo relaciono con la versión del paquete en
package.json
y git commits.
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 decir qué versiones vienen después de otras, es por eso que está vinculado a las confirmaciones de git engetGitVersion
-
Sin embargo,
versionName
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
Debería cambiar su
versionCode
y
versionName
en
android/app/build.gradle
:
android {
defaultConfig {
versionCode 1
versionName "1.0"
{...}
}
{...}
}
Establezca el
versionCode
bajo
android
en app.json:
{
"expo": {
"name": "App Name",
...
"android": {
"package": "com.app.name",
"permissions": [],
"versionCode": 2
}
}
}
Me topé con esto mientras buscaba en google, y ninguna de las respuestas me convenía ya que quería automatizar el proceso.
Para aquellos que quieran automatizar esto y tener iOS al mismo tiempo, pueden usar react-native-version para establecer los números de versión.
Una vez que lo haya instalado, simplemente puede actualizar su versión dentro del archivo package.json y ejecutar el script.
$ yarn postversion
$ 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.