Package Name — क्या है, रिवर्स डोमेन नोटेशन और आवश्यकताएँ

लेखक: IT Sectr प्रकाशित: 2026-04-17 पढ़ने का समय: 8 मिनट

Package Name रिवर्स डोमेन नोटेशन (reverse domain notation) पर आधारित Android एप्लिकेशनों के लिए एक अनूठा पहचानकर्ता है। इसका उपयोग सिस्टम द्वारा उपयोगकर्ता के डिवाइस पर एप्लिकेशनों को अलग करने, Google Play द्वारा उत्पाद की पहचान करने और Firebase सेवाओं द्वारा सभी परियोजना कॉन्फ़िगरेशन्स को लिंक करने के लिए किया जाता है। Android Developer Documentation के अनुसार, प्रकाशन के बाद Package Name एप्लिकेशन जीवनचक्र में अपरिवर्तित रहता है।

मुख्य बातें

  • Package Name — रिवर्स डोमेन प्रारूप में वैश्विक Android एप्लिकेशन पहचानकर्ता
  • प्रारूप कंपनी डोमेन का उलटा क्रम में उपयोग करता है: com.example.app
  • विशिष्टता की पुष्टि Google Play द्वारा प्रकाशन पर की जाती है — डप्लिकेट निषिद्ध हैं
  • बदलना प्रकाशन के बाद Package Name को बदलना नए एप्लिकेशन के बिना असंभव है
  • Application ID build.gradle में Package Name से मेल खाता है और अलग से कॉन्फ़िगर किया जाता है

Android में Package Name क्या है

Package Name एक अनूठा स्ट्रिंग है जिसे Android ऑपरेटिंग सिस्टम स्तर पर एप्लिकेशन की पहचान करने के लिए उपयोग करता है। यह AndroidManifest.xml फ़ाइल में package फ़ील्ड और एप्लिकेशन मॉड्यूल की build.gradle फ़ाइल में applicationId फ़ील्ड से मेल खाता है। अनूठे Package Name के बिना, उपयोगकर्ता के डिवाइस पर एप्लिकेशन स्थापित करना असंभव है।

Package Name का उद्देश्य

डिवाइस पर, Package Name एप्लिकेशन प्रबंधन की कुंजी के रूप में कार्य करता है: सिस्टम /data/data/[packageName] निर्देशिका में प्रत्येक एप्लिकेशन का डेटा, सेटिंग्स और कैश संग्रहीत करता है। समान पहचानकर्ता वाले दो एप्लिकेशन सह-अस्तित्व नहीं रख सकते — डप्लिकेट स्थापित करने का प्रयास करने पर, सिस्टम मौजूदा एप्लिकेशन को हटाने का संकेत देता है।

Package Name और Application ID

Android Gradle Plugin संस्करण 0.11+ में Package Name (मैनिफेस्ट में) और Application ID (build.gradle में) के बीच पृथक्करण पेश किया गया। Application ID सिस्टम और Google Play के लिए वास्तविक एप्लिकेशन पहचानकर्ता है। मैनिफेस्ट में Package Name का उपयोग संसाधन समाधान और R-क्लास जनरेशन के लिए होता है। सरलता के लिए उन्हें समान रखने की अनुशंसा है।

groovy
// build.gradle (Module: app)
android {
    defaultConfig {
        applicationId "com.example.myapplication"
        minSdkVersion 24
        targetSdkVersion 34
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        debug {
            applicationIdSuffix ".debug"
        }
    }
}

applicationIdSuffix फ़ील्ड विभिन्न बिल्ड कॉन्फ़िगरेशन्स के लिए Application ID में प्रत्यय जोड़ने की अनुमति देता है। डीबग संस्करण में पहचानकर्ता com.example.app.debug हो सकता है, जो इसे प्रोडक्शन संस्करण के साथ समानांतर परीक्षण के लिए स्थापित करने की अनुमति देता है।

Package Name नामकरण नियम

Google Play प्रकाशन के समय Package Name के लिए सत्रिक्ष नियम निर्धारित करता है जिनका पालन किया जाना चाहिए। पहचानकर्ता पूरे स्टोर में अनूठा होना चाहिए, वाक्य रचना आवश्यकताओं का पालन करना चाहिए और ट्रेडमार्क नीतियों का उल्लंघन नहीं करना चाहिए।

वाक्य रचना आवश्यकताएँ

Package Name में केवल लैटिन अक्षर (A-Z, a-z), अंक (0-9), डॉट (.) और अंडरस्कोर (_) ही हो सकते हैं। अधिकतम लंबाई 150 अक्षर है। डॉट के बीच का प्रत्येक खंड एक अक्षर से शुरू होना चाहिए। हाइफेन, स्पेश और विशेष वर्ण Google Play नियमों द्वारा निषिद्ध हैं।

आवश्यकतामानउदाहरण
अनुमत वर्णलैटिन अक्षर, अंक, डॉट, अंडरस्कोरcom.example.my_app
अधिकतम लंबाई150 अक्षरcom.example.verylongappname
खंड की शुरुआतकेवल अक्षरcom — 3com नहीं
निषिद्धहाइफेन, स्पेश, सिरिलिकcom.example-app — त्रुटि
विशिष्टताGoogle Play में वैश्विकनिर्माण पर जाँच की जाती है

विशिष्टता आवश्यकताएँ

Package Name की विशिष्टता Google Play Store की एक पूर्ण आवश्यकता है। यदि कोई अन्य एप्लिकेशन पहले से चुने गए पहचानकर्ता का उपयोग कर रहा है, तो प्रकाशन अस्वीकार कर दिया जाएगा। Google हटाए गए एप्लिकेशनों के पहचानकर्ता जारी नहीं करता, इसलिए प्रत्येक डेवलपर के लिए पहला Package Name चुनना एक महत्वपूर्ण निर्णय है।

रिवर्स डोमेन नोटेशन और सम्मतियाँ

रिवर्स डोमेन नोटेशन एक नामकरण मानक है जिसमें कंपनी डोमेन नाम उलटे क्रम में लिखा जाता है: example.com के बजाय com.example। यह प्रणाली पहचानकर्ताओं की वैश्विक विशिष्टता सुनिश्चित करती है क्योंकि प्रत्येक डोमेन नाम मूलतः अनूठा होता है।

मानक उपसर्ग

डेवलपर आमतौर पर अपने डोमेन के TLD के अनुरूप उपसर्ग का उपयोग करते हैं: com वाणिज्यिक संगठनों के लिए, org गैर-लाभार्थी के लिए, io तकनीकी परियोजनाओं के लिए, net नेटवर्क सेवाओं और समाधानों के लिए। व्यक्तिगत परियोजनाओं के लिए, com.github.username या com.email स्वीकार्य है।

  • com.company.app — वाणिज्यिक एप्लिकेशनों के लिए मानक प्रारूप
  • org.company.app — गैर-लाभार्थी और ओपन-सॉर्स परियोजनाओं के लिए
  • io.company.app — स्टार्टप्स और SaaS उत्पादों में लोकप्रिय
  • com.github.username — GitHub पर व्यक्तिगत परियोजनाओं के लिए

मल्टीप्लेटफ़ॉर्म परियोजनाओं के लिए सम्मतियाँ

iOS और Android पर जारी एप्लिकेशनों के लिए, दोनों प्लेटफ़ॉर्म पर समान पहचानकर्ता का उपयोग करने की अनुशंसा है। यह Firebase, AppsFlyer, Adjust और अन्य एनालिटिक्स सिस्टम के साथ एकीकरण को सरल करता है जो परियोजना पहचानकर्ता से बँधे होते हैं। उदाहरण के लिए, com.mycompany.myapp iOS पर Bundle ID और Android पर Package Name होगा।

Android परियोजना में Package Name कॉन्फ़िगर करना

Android परियोजना में Package Name कॉन्फ़िगर करना build.gradle में applicationId और संगत Java/Kotlin सोर्स कोड निर्देशिका संरचना को बदलने पर आधारित है। Android Studio Package Name के रिफाक्टरिंग के लिए उपकरण प्रदान करता है, लेकिन जटिल परियोजनाओं के लिए क्रमशः माइग्रेशन की अनुशंसा है।

निर्देशिका संरचना और Package Name

kotlin
// फ़ाइल पथ Package Name से मेल खाता है
// com/example/myapp/MainActivity.kt

package com.example.myapp

import android.os.Bundle
import androidx.activity.ComponentActivity

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }
}

Kotlin और Java में, सोर्स फ़ाइलों में Package Name निर्देशिका संरचना से मेल खाना चाहिए। build.gradle में Package Name बदलने पर, आपको फ़ाइलों को संगत निर्देशिकाओं में ले जाना चाहिए और सभी package और import घोषणाओं को अपडेट करना चाहिए। Android Studio Refactor -> Move के माध्यम से यह स्वचालित रूप से कर सकता है, लेकिन दर्जनों फ़ाइलों वाली बड़ी परियोजनाओं के लिए, रिफाक्टरिंग के बाद परिणाम की पुष्टि करने की अनुशंसा है।

यदि परियोजना Data Binding, View Binding या Hilt का उपयोग करती है, तो Package Name बदलने से जनरेट किए गए क्लासों पर भी प्रभाव पड़ेगा। बाइंडिंग क्लास मॉड्यूल के Package Name और लैआउट निर्देशिका के आधार पर बनाए जाते हैं। पहचानकर्ता बदलने के बाद, सभी जनरेट संदर्भों को अपडेट करने के लिए आपको परियोजना का पुनर्निर्माण करना होगा। पुराने संग्रहीत संदर्भों से त्रुटियों से बचने के लिए Package Name बदलने के बाद क्लीन बिल्ड करने की अनुशंसा है।

Gradle 7.0+ में build.gradle में namespace के लिए समर्थन पेश किया गया, जिसने R-क्लास और संसाधन निर्माण उद्देश्यों के लिए AndroidManifest.xml में package फ़ील्ड को बदल दिया। इस बीच, applicationId सिस्टम और Google Play के लिए वास्तविक एप्लिकेशन पहचानकर्ता बना रहता है। यह अलग-अलग applicationId और namespace की अनुमति देता है, जो लाइब्रेरी मॉड्यूल्स के लिए उपयोगी है जहाँ namespace निश्चित होता है जबकि सार्वजनिक पहचानकर्ता बिल्ड के दौरान बदल सकता है।

मॉड्यूलर आर्किटेक्चर वाली परियोजनाओं के लिए, एक मॉड्यूल का Package Name बदलने से अन्य मॉड्यूल्स में इम्पोर्ट प्रभावित हो सकते हैं। यदि data मॉड्यूल के पास पैकेज com.example.data है और domain मॉड्यूल इसकी क्लासें का उपयोग करता है, तो पहचानकर्ता बदलने के बाद, सभी निर्भर मॉड्यूल्स में इम्पोर्ट अपडेट करें। Android Gradle Plugin संस्करण 8.0+ build.gradle से स्वचालित namespace जनरेशन के माध्यम से इस प्रक्रिया को सरल करता है।

कोड के माध्यम से Package Name की जाँच

वर्तमान Application ID प्राप्त करने के लिए, BuildConfig क्लास का उपयोग करें: BuildConfig.APPLICATION_ID। यह कोड में सार्तिक तर्क, पर्यावरण बाँधने या डीबग स्क्रीन में पहचानकर्ता प्रदर्शित करने के लिए सुविधाजनक है। BuildConfig स्वचालित रूप से build.gradle के आधार पर जनरेट होता है।

kotlin
// रनटाइम पर Application ID प्राप्त करना
val packageName = BuildConfig.APPLICATION_ID
val packageManager = packageManager
val appInfo = packageManager.getPackageInfo(packageName, 0)

println("App version: ${appInfo.versionName} (${appInfo.versionCode})")
println("Package: $packageName")

प्रकाशन के बाद Package Name बदलना

Google Play पर एप्लिकेशन प्रकाशित करने के बाद Package Name बदलना एक पूर्ण नया उत्पाद बनाने के बराबर है। सिस्टम अलग Package Name के साथ किसी मौजूदा एप्लिकेशन को अपडेट करने की अनुमति नहीं देता, इसलिए पहचानकर्ता बदलने का निर्णय स्टोर में परियोजना को पुनर्आरंभ करने के समान है।

Package Name बदलने के परिणाम

Package Name बदलने पर निम्न खो जाते हैं: सभी रेटिंग्स और समीक्षाएँ, इंस्टलेशन आंकड़े, Google Services एकीकरण (यदि स्थानांतरित नहीं किया गया), Firebase परियोजना लिंक (नया google-services.json बनाने की आवश्यकता है)। उपयोगकर्ताओं को स्वचालित अपडेट प्राप्त नहीं होगा — वे स्टोर में नया एप्लिकेशन देखेंगे।

  • रेटिंग्स और समीक्षाएँ — पुराने एप्लिकेशन के साथ रहती हैं, स्थानांतरित नहीं होतीं
  • इंस्टलेशन आंकड़े — नए Package Name के लिए रीसेट हो जाते हैं
  • Firebase परियोजनाएँ — नए google-services.json कॉन्फ़िगरेशन और सभी सेवाओं के पुनर्कॉन्फ़िगरेशन की आवश्यकता है
  • उपयोगकर्ता — स्वचालित अपडेट प्राप्त नहीं करते, अलग से सूचित किए जाने की आवश्यकता है

Package Name बदलना कब उचित है

Package Name बदलना कंपनी रीब्रांडिंग, एप्लिकेशन को किसी अन्य डेवलपर अकाऊंट में स्थानांतरित करने, या किसी अन्य क्षेत्र के लिए अलग संस्करण बनाने पर उचित हो सकता है। किसी भी स्थिति में, बदलने से पहले पुराने एप्लिकेशन के माध्यम से उपयोगकर्ताओं को सूचित करने और डेटा स्थानांतरण के साथ एक माइग्रेशन योजना तैयार करने की अनुशंसा है। माइग्रेशन योजना के बिना, उपयोगकर्ता खरीदी गई सामग्री, सदस्यताओं और सहेजे गए एप्लिकेशन डेटा तक पहुंच खो देंगे। माइग्रेशन में SharedPreferences या Room के माध्यम से डेटाबेस और फ़ाइलों का स्थानांतरण शामिल है।

Package Name बदलने से पहले सुनिश्चित करें कि नया पहचानकर्ता अनूठा है और नामकरण नियमों का पालन करता है। नए Package Name के साथ Google Play में एक नया एप्लिकेशन बनाएं और इसे एक अलग उत्पाद के रूप में प्रकाशित करें। पुराने एप्लिकेशन विवरण में, नए का लिंक प्रदान करें। उपयोगकर्ताओं को पुनर्निर्देशित करने के लिए Google Play Custom Store Listing का उपयोग करने पर विचार करें।

अक्सर पूछे जाने वाले प्रश्न

क्या मैं Package Name में हाइफेन या अंडरस्कोर का उपयोग कर सकता हूँ?

Package Name में अंडरस्कोर (_) की अनुमति है, लेकिन हाइफेन (-) की नहीं। अंडरस्कोर का उपयोग शयद ही होता है लेकिन स्वीकार्य है: com.example.my_app। हाइफेन Google Play नियमों द्वारा निषिद्ध हैं और प्रकाशन के दौरान त्रुटि का कारण बनेंगे। खंड विभाजक के रूप में केवल डॉट का उपयोग करने की अनुशंसा है।

build.gradle में Package Name और Application ID में क्या अंतर है?

Package Name AndroidManifest.xml में पहचानकर्ता है जिसका उपयोग संसाधन समाधान और R-क्लास जनरेशन के लिए होता है। Application ID build.gradle में फ़ील्ड है जो सिस्टम और Google Play Store के लिए एप्लिकेशन पहचानकर्ता निर्धारित करता है। उन्हें समान रखने की अनुशंसा है, लेकिन applicationIdSuffix का उपयोग करते समय अंतर की अनुमति है।

नए परियोजना के लिए सही Package Name कैसे चुनें?

अपनी कंपनी या उपनाम की रिवर्स डोमेन नोटेशन का उपयोग करें: com.domain.appname। सुनिश्चित करें कि पहचानकर्ता Google Play में अनूठा है। सामान्य शब्दों (todo, test, app) से बचें और Google Play में खोज करके जाँचें कि क्या पहचानकर्ता पहले से किसी अन्य डेवलपर द्वारा लिया गया है या नहीं।

क्या मैं Google Play पर प्रकाशित करने से पहले Package Name बदल सकता हूँ?

हाँ, Google Play पर प्रकाशित करने से पहले, Package Name को बिना किसी परिणाम के बदला जा सकता है। बदलने के बाद, आपको google-services.json पुनर्जनरेट करना होगा, निर्देशिका संरचना को अपडेट करना होगा और सभी इम्पोर्ट की जाँच करनी होगी। Android Studio प्रक्रिया को स्वचालित करने के लिए Refactor -> Move उपकरण प्रदान करता है।

Package Name एप्लिकेशन हस्ताक्षर से कैसे संबंधित है?

Package Name हस्ताक्षर प्रमाणपत्र के साथ मिलकर एक अनूठा बंधन बनाता है जो Google Play में एप्लिकेशन की पहचान करता है। भले ही दो एप्लिकेशनों के Package Names अलग हों, वे एक ही कुंजी से हस्ताक्षरित हो सकते हैं। हस्ताक्षर प्रमाणपत्र बदलना Key Rotation के माध्यम से Play Console में पहचानकर्ता खोए बिना संभव है।

सारांश

  • Package Name — रिवर्स डोमेन नोटेशन प्रारूप में अनूठा Android एप्लिकेशन पहचानकर्ता
  • नामकरण नियम — लैटिन अक्षर, अंक, डॉट, अंडरस्कोर; अधिकतम 150 अक्षर
  • रिवर्स डोमेन वैश्विक विशिष्टता सुनिश्चित करता है: com.company.appname
  • Application ID build.gradle में Package Name से मेल खाता है और बिल्ड सफ़िक्स हो सकते हैं
  • बदलना प्रकाशन के बाद असंभव है — नया एप्लिकेशन रेटिंग्स और समीक्षाएँ खो देता है
  • Android Studio प्रकाशन से पहले सुरक्षित परिवर्तन के लिए रिफाक्टरिंग उपकरण प्रदान करता है
  • अनुशंसा — प्रकाशन से पहले एक सार्थक पहचानकर्ता चुनें, सामान्य और व्यस्त नामों से बचें

हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे

IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।

परियोजना पर चर्चा करें

यह भी पढ़ें