Estou usando o React nativo com Android. Como posso atualizar o número da versão no aplicativo? Como estou recebendo este erro.
Estou gerando o arquivo de acordo com este url https://facebook.github.io/react-native/docs/signed-apk-android.html
Tentei modificar o arquivo AndroidManifest.xml, mas depois de criá-lo, esse arquivo é modificado automaticamente de volta.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.facebook.react"
android:versionCode="1"
android:versionName="1.0" >
Aqui, eu modifiquei o XML:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.facebook.react"
android:versionCode="2"
android:versionName="1.1" >
Depois, o arquivo de construção muda automaticamente de volta.
android
react-native
Praveen Prasad
fonte
fonte
Respostas:
Você deve mudar seu
versionCode
eversionName
emandroid/app/build.gradle
:android { defaultConfig { versionCode 1 versionName "1.0" {...} } {...} }
fonte
versionCode
is a value that's meant for Google/you. When you upload to Google Play, it expectsversionCode
to be greater than the previousversionCode
, and also unique for every uploaded file. Personally, I just manually incrementversionCode
by one each time I prepare an upload to Google Play. Other people automate it to increment based on the git commit, or other factor.versionName
is what you would change to "2.2" so that your users will see that version number when they update/download your app.1.0.1
and will display that value to users.@Joseph Roque is correct, you need to update the version numbers in
android/app/build.gradle
.Here's how I automate this and tie it into the package's version in
package.json
and git commits.In
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" } }
Notes:
It's important that
versionCode
is an integer - so we can't use semantic versioning here. This is used on the play store to tell which versions come after others - that's why it's tied to git commits ingetGitVersion
versionName
however is shown to users - I'm using semantic versioning here and storing the real value in mypackage.json
. Thanks to https://medium.com/@andr3wjack/versioning-react-native-apps-407469707661fonte
For those wanting to automate this, and have iOS at the same time, you can use react-native-version to set the version numbers.
All you need to do is update your version number inside the package.json file and run the following:
$ npx react-native-version --never-amend [RNV] Versioning Android... [RNV] Android updated [RNV] Versioning iOS... [RNV] iOS updated [RNV] Done ✨ Done in 0.39s.
I hope this can help others.
fonte
Set the
versionCode
underandroid
in 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
fonte
I had the same problem and I checked all the above answer, I had a made a silly mistake because of which nothing worked for me. Just in case any of you do same mistake as mine try this.
So in project/app/build.gradle
android { defaultConfig { versionCode 1 // do not use decimal number here versionName "1.0" // you can use decimal number here. {...} } {...} }
fonte
If someone is facing
Then make sure to not use SeparateBuildPerCPUArchitecture in
android/app/build.gradle
def enableSeparateBuildPerCPUArchitecture = false
and
to update the version code and name change in
android/app/build.gradle
:android { defaultConfig { versionCode 1 versionName "1.0" {...} } {...} }
fonte