Package Name — کیا ہے، ریورس ڈومین نوٹیشن اور ضروریات

مصنف: IT Sectr اشاعت: 2026-04-17 مطالعے کا وقت: 8 منٹ

Package Name ریورس ڈومین نوٹیشن پر مبنی Android ایپلیکیشنز کے لیے ایک منفرد شناختی ہے۔ یہ سیسٹم دورانہ صارف کے آلے پر ایپلیکیشنز کو فرق کرنے، Google Play دورانہ مصنوعات کی شناخت کرنے اور Firebase کی خدمات دورانہ تمام منصوبے کی ترتیبات کو منسلک کرنے کے لیے استعمال ہوتا ہے۔ Android ڈیولپر ڈاکیومینٹیشن کے مطابق، اشاعہ کے بعد 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 تبدیل کرنا دیگر موڈیولز میں import کو متاثر کر سکتا ہے۔ اگر data موڈیول میں پیکیج com.example.data ہے اور domain موڈیول اس کے کلاسوں کا استعمال کرتا ہے، شناختی تبدیل کے بعد، تمام منحصر موڈیولز میں import اپ ڈیٹ کریں۔ 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 دوبارہ تیار کرنا ہوگا، ڈائرکٹری کی ساخت اپ ڈیٹ کرنی ہوگی اور تمام import کی تصدیق کرنی ہوگی۔ 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 ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں