Cách cập nhật số phiên bản của ứng dụng gốc phản ứng


98

Tôi đang sử dụng React native với Android. Làm cách nào để cập nhật số phiên bản trong ứng dụng? Như tôi đang nhận được lỗi này.

Tôi đang tạo tệp theo url này https://facebook.github.io/react-native/docs/signed-apk-android.html

Tôi đã thử sửa đổi tệp AndroidManifest.xml, nhưng sau khi tôi tạo, tệp đó sẽ tự động được sửa đổi trở lại.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.facebook.react"
    android:versionCode="1"
    android:versionName="1.0" >

Ở đây, tôi đã sửa đổi XML:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.facebook.react"
    android:versionCode="2"
    android:versionName="1.1" >

Sau đó, tệp xây dựng sẽ tự động thay đổi trở lại.

nhập mô tả hình ảnh ở đây


1
android: Mã phiên bản = "2" có nghĩa là bất cứ khi nào bạn muốn tải lên apk trên cửa hàng play đó là cần thiết để tăng mã phiên bản & mã phiên bản bạn có thể giữ bất cứ điều gì bạn muốn không làm ảnh hưởng
Ajinkya

không hoạt động, tôi đã làm nó rồi. Tôi đã sửa câu hỏi của mình.
Praveen Prasad

Câu trả lời:


190

Bạn nên thay đổi của bạn versionCodeversionNametrong android/app/build.gradle:

android {

    defaultConfig {

        versionCode 1
        versionName "1.0"

        {...}
    }

    {...}
}

Cảm ơn, bản thân tôi đã xem tệp đó nhiều lần, nhưng chỉ bỏ sót phần đó.
Praveen Prasad

3
Tôi đã tìm thấy giải pháp trong tệp mà bạn đã chỉ đến, nhưng nó thực sự hơi xa hơn một chút. Có một phần bắt đầu với applicationVariants và trong đó output.versionCodeOverride đang được thiết lập, làm như tên đề xuất và ghi đè phần ở đầu tệp.
AidenMontgomery

1
@Noitidart nếu bạn đang xây dựng bằng Android Studio và Gradle, thay đổi nó ở đây là đủ. Nó sẽ ghi đè bất cứ thứ gì bạn đưa vào AndroidManifest.xml
Joseph Roque

14
@Noitidart versionCodelà một giá trị dành cho Google / bạn. Khi bạn tải lên Google Play, tệp dự kiến ​​sẽ versionCodelớn hơn trước versionCodevà cũng là duy nhất cho mọi tệp được tải lên. Theo cá nhân tôi, tôi chỉ tăng theo cách thủ công versionCodemỗi khi chuẩn bị tải lên Google Play. Những người khác tự động hóa nó để tăng dần dựa trên git commit hoặc yếu tố khác. versionNamelà những gì bạn sẽ thay đổi thành "2.2" để người dùng của bạn sẽ thấy số phiên bản đó khi họ cập nhật / tải xuống ứng dụng của bạn.
Joseph Roque,

2
@KTWorks có, Mã phiên bản phải là một số nguyên. versionName có thể được đặt thành 1.0.1và sẽ hiển thị giá trị đó cho người dùng.
Joseph Roque

90

@Joseph Roque là chính xác, bạn cần cập nhật số phiên bản trong android/app/build.gradle.

Đây là cách tôi tự động hóa điều này và gắn nó vào phiên bản của gói trong package.jsonvà git cam kết.

Trong 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"
        }
    }

Ghi chú:

  • Điều quan trọng đó versionCodelà một số nguyên - vì vậy chúng tôi không thể sử dụng lập phiên bản ngữ nghĩa ở đây. Điều này được sử dụng trên cửa hàng chơi để cho biết phiên bản nào đến sau những phiên bản khác - đó là lý do tại sao nó được gắn với cam kết git tronggetGitVersion

  • versionNametuy nhiên được hiển thị cho người dùng - Tôi đang sử dụng phiên bản ngữ nghĩa ở đây và lưu trữ giá trị thực trong của tôi package.json. Cảm ơn https://medium.com/@andr3wjack/versaction-react-native-apps-407469707661


6
Andrew Jack thảo luận về một phương pháp rất giống và một phương pháp cho iOS trong bài viết trên Phương tiện của anh ấy: medium.com/@andr3wjack/… . Đây là một bài đọc tuyệt vời cho những người muốn giữ cho các phiên bản của họ phù hợp với các bản dựng của họ.
DBrown

17

Đối với những người muốn tự động hóa việc này và sử dụng iOS đồng thời, bạn có thể sử dụng phiên bản gốc để đặt số phiên bản.

Tất cả những gì bạn cần làm là cập nhật số phiên bản của mình bên trong tệp package.json và chạy như sau:

$ npx react-native-version --never-amend

[RNV] Versioning Android...
[RNV] Android updated
[RNV] Versioning iOS...
[RNV] iOS updated
[RNV] Done
✨  Done in 0.39s.

Tôi hy vọng điều này có thể giúp những người khác.



0

Nếu ai đó đang đối mặt

mã phiên bản sai ví dụ - 31284

Sau đó, đảm bảo không sử dụng SeparateBuildPerCPUArchitecture trong android/app/build.gradle

def enableSeparateBuildPerCPUArchitecture = false

để cập nhật mã phiên bản và thay đổi tên trong android/app/build.gradle:

android {

defaultConfig {

    versionCode 1
    versionName "1.0"

    {...}
}

{...}
}

0

Tôi đã gặp vấn đề tương tự và tôi đã kiểm tra tất cả các câu trả lời ở trên, tôi đã mắc một lỗi ngớ ngẩn vì không có gì hiệu quả với tôi. Đề phòng bất kỳ ai trong số các bạn mắc lỗi tương tự như tôi, hãy thử cách này.

  1. Phiên bản có thể là một số thập phân như 1.0 hoặc 1.0.1, v.v.
  2. Nhưng Mã phiên bản không thể là số thập phân Nó phải là 1,2,3, v.v. chứ không phải 1,1 hoặc 2,2

Vì vậy, trong project / app / build.gradle

android {
defaultConfig {
    versionCode 1 // do not use decimal number here
    versionName "1.0" // you can use decimal number here.
    {...}
}
{...}
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.