Ответ 1
Вы должны изменить свои versionCode
и versionName
в android/app/build.gradle
:
android {
defaultConfig {
versionCode 1
versionName "1.0"
{...}
}
{...}
}
Я использую 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" >
После этого файл сборки автоматически изменится.
Вы должны изменить свои versionCode
и versionName
в android/app/build.gradle
:
android {
defaultConfig {
versionCode 1
versionName "1.0"
{...}
}
{...}
}
@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
Я наткнулся на это во время поиска в Google, и ни один из ответов мне не подошел, так как я хотел автоматизировать процесс.
Для тех, кто хочет автоматизировать это и одновременно иметь iOS, вы можете использовать response-native-version для установки номеров версий.
После установки вы можете просто обновить свою версию в файле package.json и запустить скрипт.
$ 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.
Я надеюсь, что это может помочь другим.