Я использую React native с Android. Как я могу обновить номер версии в приложении? Как я получаю эту ошибку.
Я создаю файл по этому URL- адресу https://facebook.github.io/react-native/docs/signed-apk-android.html
Я попытался изменить файл AndroidManifest.xml, но после его создания этот файл автоматически изменяется.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.facebook.react"
android:versionCode="1"
android:versionName="1.0" >
Здесь я изменил XML:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.facebook.react"
android:versionCode="2"
android:versionName="1.1" >
После этого файл сборки автоматически возвращается обратно.
android
react-native
Правин Прасад
источник
источник
Ответы:
Вы должны изменить свой
versionCode
иversionName
вandroid/app/build.gradle
:android { defaultConfig { versionCode 1 versionName "1.0" {...} } {...} }
источник
versionCode
- это ценность, предназначенная для Google / вас. Когда вы загружаете в Google Play, ожидается, что онversionCode
будет больше, чем предыдущийversionCode
, а также будет уникальным для каждого загруженного файла. Лично я просто вручную увеличиваюversionCode
на единицу каждый раз, когда готовлю загрузку в Google Play. Другие люди автоматизируют его для увеличения на основе фиксации git или другого фактора.versionName
это то, что вы бы изменили на "2.2", чтобы ваши пользователи видели этот номер версии при обновлении / загрузке вашего приложения.1.0.1
и это значение будет отображаться для пользователей.@Joseph Roque прав, вам нужно обновить номера версий в
android/app/build.gradle
.Вот как я это автоматизирую и привязываю к версии пакета,
package.json
а git фиксируется.В
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" } }
Примечания:
Важно, чтобы
versionCode
это было целое число, поэтому мы не можем использовать здесь семантическое управление версиями. Это используется в игровом магазине, чтобы определить, какие версии идут после других - поэтому он привязан к коммитам git вgetGitVersion
versionName
однако показано пользователям - здесь я использую семантическое управление версиями и сохраняю реальное значение в моемpackage.json
. Спасибо https://medium.com/@andr3wjack/versioning-react-native-apps-407469707661источник
Для тех, кто хочет автоматизировать это и одновременно иметь iOS, вы можете использовать response-native-version для установки номеров версий.
Все, что вам нужно сделать, это обновить номер своей версии внутри файла package.json и запустить следующее:
$ npx react-native-version --never-amend [RNV] Versioning Android... [RNV] Android updated [RNV] Versioning iOS... [RNV] iOS updated [RNV] Done ✨ Done in 0.39s.
Надеюсь, это поможет другим.
источник
Установите
versionCode
Underandroid
в app.json:{ "expo": { "name": "App Name", ... "android": { "package": "com.app.name", "permissions": [], "versionCode": 2 } } }
ссылка: 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
источник
Если кто-то сталкивается
Затем убедитесь, что не используете SeparateBuildPerCPUArchitecture в
android/app/build.gradle
def enableSeparateBuildPerCPUArchitecture = false
а также
для обновления кода версии и смены имени в
android/app/build.gradle
:android { defaultConfig { versionCode 1 versionName "1.0" {...} } {...} }
источник
У меня была такая же проблема, и я проверил весь приведенный выше ответ, я сделал глупую ошибку, из-за которой у меня ничего не работало. На всякий случай, если кто-то из вас совершит ту же ошибку, что и я, попробуйте это.
Итак, в project / app / build.gradle
android { defaultConfig { versionCode 1 // do not use decimal number here versionName "1.0" // you can use decimal number here. {...} } {...} }
источник