प्रतिक्रिया मूल एप्लिकेशन की संस्करण संख्या कैसे अपडेट करें


103

मैं एंड्रॉइड के साथ रिएक्ट मूल का उपयोग कर रहा हूं। मैं ऐप में वर्जन नंबर कैसे अपडेट कर सकता हूं? जैसा कि मुझे यह त्रुटि मिल रही है।

मैं इस 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" >

बाद में, फ़ाइल का निर्माण स्वचालित रूप से वापस बदल जाता है।

यहाँ छवि विवरण दर्ज करें


1
Android: versionCode = "2" का मतलब है जब भी आप play store पर एपीके अपलोड करना चाहते हैं जो कि वर्जन कोड और वर्जन कोड को बढ़ाने के लिए आवश्यक है, आप जो भी चाहते हैं उसे प्रभावित नहीं कर सकते
Ajinkya

काम नहीं करता है, मैं पहले ही कर चुका हूं। मैंने अपना प्रश्न ठीक कर लिया है।
प्रवीण प्रसाद

जवाबों:


198

आपको अपना versionCodeऔर versionNameमें बदलना चाहिए android/app/build.gradle:

android {

    defaultConfig {

        versionCode 1
        versionName "1.0"

        {...}
    }

    {...}
}

धन्यवाद, मैंने खुद उस फ़ाइल को कई बार देखा, लेकिन बस वह हिस्सा छूट गया।
प्रवीण प्रसाद

3
मैंने उस फ़ाइल में समाधान ढूंढ लिया जिसे आपने इंगित किया था, लेकिन यह वास्तव में थोड़ा और नीचे था। एक खंड था जो एप्लिकेशन वेरिएंट के साथ शुरू हुआ था और इसमें आउटपुट .versionCodeOverride सेट हो रहा था, जो कि सुझाए गए नाम के रूप में किया गया था और फ़ाइल के शीर्ष पर एक को ओवररोड करता था।
एनडीनमोंटगोमरी

1
@ नोइटीडार्ट यदि आप एंड्रॉइड स्टूडियो और ग्रैडल के साथ निर्माण कर रहे हैं, तो इसे यहां बदलना काफी होगा। यह आपके द्वारा AndroidManifest.xml में रखी गई किसी भी चीज़ को ओवरराइड करेगा
जोसेफ रोके

14
@Noitidart versionCodeएक मान है जो Google / आप के लिए है। जब आप Google Play पर अपलोड करते हैं, तो यह versionCodeपिछले से अधिक होने की उम्मीद करता है versionCode, और प्रत्येक अपलोड की गई फ़ाइल के लिए भी अद्वितीय है। व्यक्तिगत रूप से, मैं versionCodeGoogle Play पर अपलोड तैयार करने के लिए हर बार एक मैन्युअल रूप से वेतन वृद्धि करता हूं। अन्य लोग इसे गीट कमिट, या अन्य कारक के आधार पर वृद्धि के लिए स्वचालित करते हैं। versionNameवह है जो आप "2.2" में बदलेंगे ताकि आपके उपयोगकर्ता आपके ऐप को अपडेट / डाउनलोड करने पर उस संस्करण संख्या को देखेंगे।
जोसेफ रोक

2
@KTWorks हाँ, वर्जनकोड पूर्णांक होना चाहिए। वर्जननाम सेट किया जा सकता है 1.0.1और उपयोगकर्ताओं को वह मूल्य प्रदर्शित करेगा।
जोसेफ रोके

91

@ जोसेफ रोक सही है, आपको संस्करण संख्याओं को अपडेट करने की आवश्यकता है android/app/build.gradle

यहां बताया गया है कि मैं इसे कैसे स्वचालित करता हूं और इसे पैकेज के संस्करण में package.jsonऔर हिट करता हूं ।

इन 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एक पूर्णांक है - इसलिए हम यहां शब्दार्थ संस्करण का उपयोग नहीं कर सकते हैं। यह प्ले स्टोर पर इसका उपयोग यह बताने के लिए किया जाता है कि कौन से संस्करण दूसरों के बाद आते हैं - यही कारण है कि इसे हिट करने के लिए बंधा हुआ हैgetGitVersion

  • versionNameहालाँकि, उपयोगकर्ताओं को दिखाया गया है - मैं यहाँ शब्दार्थ संस्करण का उपयोग कर रहा हूँ और मेरे वास्तविक मूल्य को संग्रहीत कर रहा हूँ package.json। धन्यवाद https://medium.com/@andr3wjack/versioning-react-native-apps-407469707801


6
एंड्रयू जैक एक बहुत ही समान विधि, और अपने मध्यम लेख में iOS के लिए एक विधि पर चर्चा करता है: मध्यम . com / @andr3wjack/… । यह उन लोगों के लिए बहुत अच्छा पढ़ा जाता है जो अपने संस्करणों को अपने बिल्ड से मेल खाते हुए रखना चाहते हैं।
DBrown

21

इसे स्वचालित करने के इच्छुक लोगों के लिए, और एक ही समय में iOS है, आप संस्करण संख्याओं को सेट करने के लिए प्रतिक्रिया-देशी-संस्करण का उपयोग कर सकते हैं ।

आपको बस अपना संस्करण क्रमांक 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.

मुझे उम्मीद है कि यह दूसरों की मदद कर सकता है।



1

मुझे एक ही समस्या थी और मैंने उपरोक्त सभी उत्तर की जांच की, मैंने एक मूर्खतापूर्ण गलती की थी जिसके कारण मेरे लिए कुछ भी काम नहीं किया। बस अगर आप में से कोई भी गलती करता है जैसा कि मेरा प्रयास है।

  1. संस्करण एक दशमलव संख्या जैसे 1.0 या 1.0.1 आदि हो सकता है
  2. लेकिन वर्जनकोड दशमलव संख्या नहीं हो सकता है यह 1,2,3 आदि होना चाहिए और 1.1 या 2.2 नहीं

तो प्रोजेक्ट / ऐप / बिल्ड.ग्रेड में

android {
defaultConfig {
    versionCode 1 // do not use decimal number here
    versionName "1.0" // you can use decimal number here.
    {...}
}
{...}
}

0

अगर कोई सामना कर रहा है

गलत संस्करण कोड जैसे - 31284

उसके बाद सेपरेटबाइल्डपैरसीपीयूआर्किटेक्चर का उपयोग नहीं करना सुनिश्चित करें android/app/build.gradle

def enableSeparateBuildPerCPUArchitecture = false

तथा

संस्करण कोड और नाम परिवर्तन को अद्यतन करने के लिए android/app/build.gradle:

android {

defaultConfig {

    versionCode 1
    versionName "1.0"

    {...}
}

{...}
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.