Używam natywnego Reacta z Androidem. Jak mogę zaktualizować numer wersji w aplikacji? Jak otrzymuję ten błąd.
Generuję plik zgodnie z tym adresem URL https://facebook.github.io/react-native/docs/signed-apk-android.html
Próbowałem zmodyfikować plik AndroidManifest.xml, ale po jego utworzeniu plik ten jest automatycznie modyfikowany z powrotem.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.facebook.react"
android:versionCode="1"
android:versionName="1.0" >
Tutaj zmodyfikowałem XML:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.facebook.react"
android:versionCode="2"
android:versionName="1.1" >
Następnie plik kompilacji automatycznie zmienia się z powrotem.
android
react-native
Praveen Prasad
źródło
źródło
Odpowiedzi:
Należy się zmieniać swoje
versionCode
orazversionName
wandroid/app/build.gradle
:android { defaultConfig { versionCode 1 versionName "1.0" {...} } {...} }
źródło
versionCode
to wartość, która jest przeznaczona dla Google / Ciebie. Podczas przesyłania do Google Play oczekujeversionCode
się, że będzie większy niż poprzedniversionCode
, a także unikalny dla każdego przesłanego pliku. Osobiście po prostu ręcznie zwiększamversionCode
o jeden za każdym razem, gdy przygotowuję przesyłanie do Google Play. Inni ludzie automatyzują go, aby zwiększać na podstawie zatwierdzenia git lub innego czynnika.versionName
to, co należy zmienić na „2.2”, aby użytkownicy widzieli ten numer wersji podczas aktualizowania / pobierania aplikacji.1.0.1
i będzie wyświetlać tę wartość użytkownikom.@Joseph Roque ma rację, musisz zaktualizować numery wersji w
android/app/build.gradle
.Oto jak to zautomatyzować i powiązać go z wersją pakietu w
package.json
i zatwierdzeniach git.W
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" } }
Uwagi:
Ważne jest, aby
versionCode
była to liczba całkowita - więc nie możemy tutaj użyć wersji semantycznej. Jest to używane w sklepie Play, aby określić, które wersje są dostępne po innych - dlatego jest powiązane z zatwierdzeniami gitgetGitVersion
versionName
jednak jest pokazywany użytkownikom - używam tutaj wersjonowania semantycznego i przechowuję prawdziwą wartość w moimpackage.json
. Dzięki https://medium.com/@andr3wjack/versioning-react-native-apps-407469707661źródło
Dla tych, którzy chcą to zautomatyzować i jednocześnie mają iOS, możesz użyć opcji React-native-version, aby ustawić numery wersji.
Wszystko, co musisz zrobić, to zaktualizować numer wersji w pliku package.json i uruchomić następujące polecenie:
$ npx react-native-version --never-amend [RNV] Versioning Android... [RNV] Android updated [RNV] Versioning iOS... [RNV] iOS updated [RNV] Done ✨ Done in 0.39s.
Mam nadzieję, że to pomoże innym.
źródło
Ustaw
versionCode
underandroid
w 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
źródło
Miałem ten sam problem i sprawdziłem wszystkie powyższe odpowiedzi, popełniłem głupi błąd przez co nic mi nie pomogło. Na wypadek gdyby któryś z was popełnił ten sam błąd co mój, spróbuj tego.
Więc w project / app / build.gradle
android { defaultConfig { versionCode 1 // do not use decimal number here versionName "1.0" // you can use decimal number here. {...} } {...} }
źródło
Jeśli ktoś stoi
Następnie upewnij się, że nie używasz SeparateBuildPerCPUArchitecture w
android/app/build.gradle
def enableSeparateBuildPerCPUArchitecture = false
i
aby zaktualizować kod wersji i zmienić nazwę w
android/app/build.gradle
:android { defaultConfig { versionCode 1 versionName "1.0" {...} } {...} }
źródło