IT박스

React Native 앱의 버전 번호를 업데이트하는 방법

itboxs 2020. 11. 16. 07:58
반응형

React Native 앱의 버전 번호를 업데이트하는 방법


Android에서 React 네이티브를 사용하고 있습니다. 앱에서 버전 번호를 업데이트하려면 어떻게해야합니까? 이 오류가 발생합니다.

이 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하고 versionNameandroid/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"
        }
    }

메모:

  • 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 in getGitVersion

  • versionName however is shown to users - I'm using semantic versioning here and storing the real value in my package.json. Thanks to https://medium.com/@andr3wjack/versioning-react-native-apps-407469707661


I stumbled on this while searching from google, and none of the answers suited me since I wanted to automate the process.

For those wanting to automate this, and have iOS at the same time, you can use react-native-version to set the version numbers.

설치가 완료되면 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.

이것이 다른 사람들에게 도움이되기를 바랍니다.


app.json 에서 versionCode아래 android설정하십시오 .

{
  "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

참고 URL : https://stackoverflow.com/questions/35924721/how-to-update-version-number-of-react-native-app

반응형