কীভাবে প্রতিক্রিয়া নেটিভ অ্যাপ্লিকেশনটির সংস্করণ নম্বর আপডেট করবেন


97

আমি অ্যান্ড্রয়েডের সাথে রিয়েট নেটিভ ব্যবহার করছি। আমি কীভাবে অ্যাপে সংস্করণ নম্বর আপডেট করতে পারি? আমি যেমন এই ত্রুটি পাচ্ছি।

আমি এই url https://facebook.github.io/react-native/docs/sign-apk-android.html হিসাবে ফাইল তৈরি করছি

আমি অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল ফাইলটি পরিবর্তন করার চেষ্টা করেছি, তবে আমি এটি তৈরির পরে, সেই ফাইলটি স্বয়ংক্রিয়ভাবে ফিরে ফিরে আসবে।

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

এখানে, আমি এক্সএমএল সংশোধন করেছি:

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

পরে, বিল্ড ফাইল স্বয়ংক্রিয়ভাবে ফিরে ফিরে আসে।

এখানে চিত্র বর্ণনা লিখুন


4
অ্যান্ড্রয়েড: সংস্করণকোড = "২" এর অর্থ যখনই আপনি প্লে স্টোরটিতে APK আপলোড করতে চান যা সংস্করণ কোড এবং সংস্করণ কোড বাড়ানোর জন্য প্রয়োজনীয় যা আপনি প্রভাবিত করতে চান না এমন রাখতে পারেন
অজিংক্যা

কাজ করে না, আমি ইতিমধ্যে এটি সম্পন্ন করেছি। আমি আমার প্রশ্ন সংশোধন করেছি।
প্রবীণ প্রসাদ

উত্তর:


189

তুমি তোমার পরিবর্তন করা উচিত versionCodeএবং versionNameandroid/app/build.gradle:

android {

    defaultConfig {

        versionCode 1
        versionName "1.0"

        {...}
    }

    {...}
}

ধন্যবাদ, আমি নিজেও এই ফাইলটি একাধিকবার দেখেছি, তবে কেবল সেই অংশটি মিস করেছি।
প্রবীণ প্রসাদ

4
আপনি যে ফাইলটিতে ইঙ্গিত করেছেন তাতে সমাধানটি পেয়েছি তবে এটি আসলে কিছুটা নিচে ছিল। এখানে একটি বিভাগ রয়েছে যা অ্যাপ্লিকেশনটি দিয়ে শুরু হয়েছিল এবং সেখানে আউটপুট.ভার্সনকোড ওভাররাইড সেট হয়ে যাচ্ছিল , যা নামটির পরামর্শ অনুসারে করেছিল এবং ফাইলটির শীর্ষে থাকা একটিটিকে ওভাররড করে।
এইডেনমন্টগোমেরি

4
@ নোটিডার্ট যদি আপনি অ্যান্ড্রয়েড স্টুডিও এবং গ্রেডল দিয়ে তৈরি করে থাকেন তবে এখানে এটি পরিবর্তন করা যথেষ্ট be এটি আপনি অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল
জোসেফ রোকে

13
@ নোটিডার্ট versionCodeএকটি মান যা Google / আপনার জন্য বোঝায়। আপনি যখন গুগল প্লেতে আপলোড করেন, এটি versionCodeপূর্বের চেয়ে বড় হবে versionCodeএবং প্রতিটি আপলোড করা ফাইলের জন্যও অনন্য। ব্যক্তিগতভাবে, আমি versionCodeপ্রতিবার গুগল প্লেতে আপলোড প্রস্তুত করার সময় নিজেই ম্যানুয়ালি বৃদ্ধি করি। গিট কমিট বা অন্য ফ্যাক্টরের উপর ভিত্তি করে অন্যান্য ব্যক্তিরা এটিকে বর্ধিতকরণে স্বয়ংক্রিয় করে তোলে। versionNameআপনি "২.২" এ কী পরিবর্তন করবেন যাতে আপনার ব্যবহারকারীরা আপনার অ্যাপ্লিকেশন আপডেট / ডাউনলোড করার সময় সেই সংস্করণ নম্বরটি দেখতে পাবে।
জোসেফ রোক

4
@ কেটি ওয়ার্কস হ্যাঁ, সংস্করণকোড অবশ্যই একটি পূর্ণসংখ্যা হতে হবে। সংস্করণনাম সেট করা যেতে পারে 1.0.1এবং ব্যবহারকারীদের কাছে এই মানটি প্রদর্শিত হবে।
জোসেফ রোকে

90

@ জোসেফ রোক সঠিক, আপনাকে সংস্করণ নম্বরগুলি আপডেট করতে হবে 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-407469707661


6
অ্যান্ড্রু জ্যাক তার একই মাধ্যম নিবন্ধে একটি খুব অনুরূপ পদ্ধতি এবং আইওএসের জন্য একটি পদ্ধতি নিয়ে আলোচনা করেছেন: माध्यम . com / @andr3wjack/… । লোকেরা তাদের বিল্ডগুলির সাথে তাদের সংস্করণগুলি মিলে রাখতে চাইছে এটি একটি দুর্দান্ত পঠিত।
ডি ব্রাউন

17

যাঁরা এটি স্বয়ংক্রিয় করতে চান এবং একই সাথে আইওএস রাখতে চান তাদের সংস্করণ নম্বর সেট করতে আপনি প্রতিক্রিয়া-স্থানীয়-সংস্করণ ব্যবহার করতে পারেন ।

আপনাকে যা করতে হবে তা হ'ল প্যাকেজ.জসন ফাইলের মধ্যে আপনার সংস্করণ নম্বরটি আপডেট করা এবং নিম্নলিখিতগুলি চালানো উচিত:

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

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

আমি আশা করি এটি অন্যকে সহায়তা করতে পারে।



0

কেউ যদি মুখোমুখি হয়

ভুল সংস্করণ কোড যেমন - 31284

তারপরে SeparateBuildPerCPUArchitecture ব্যবহার না করার বিষয়টি নিশ্চিত করুন android/app/build.gradle

def enableSeparateBuildPerCPUArchitecture = false

এবং

সংস্করণ কোড আপডেট করতে এবং নাম পরিবর্তন করতে android/app/build.gradle:

android {

defaultConfig {

    versionCode 1
    versionName "1.0"

    {...}
}

{...}
}

0

আমারও একই সমস্যা ছিল এবং আমি উপরের সমস্ত উত্তর যাচাই করেছিলাম, আমার একটা মূর্খ ভুল হয়েছিল যার কারণে কিছুই আমার পক্ষে কার্যকর হয়নি। আমার ক্ষেত্রে যেমন কেউ চেষ্টা করে তেমনি ভুল করে থাকে।

  1. সংস্করণটি দশমিক সংখ্যা যেমন 1.0 বা 1.0.1 ইত্যাদি হতে পারে
  2. তবে ভার্সনকোড দশমিক সংখ্যা হতে পারে না এটি 1,2,3 ইত্যাদি হওয়া উচিত এবং 1.1 বা 2.2 নয়

সুতরাং প্রকল্প / অ্যাপ / বিল্ড.gradle এ

android {
defaultConfig {
    versionCode 1 // do not use decimal number here
    versionName "1.0" // you can use decimal number here.
    {...}
}
{...}
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.