APNS: یہ کیا ہے، Apple Push Notification Service کیسے کام کرتا ہے اور اس کا ڈھانچہ

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

APNS (Apple Push Notification Service) Apple کا بنیادی ڈھانچہ سروس ہے جو ایکو سسٹم ڈیوائسز — iPhone, iPad, Mac, Apple Watch اور Apple TV — پر push نوٹیفیکیشن پہنچانے کے لیے ہے۔ یہ سروس ڈیوائس اور Apple سرورز کے درمیان مستقل TLS کنکشن کے ذریعے قابل اعتماد پیغام کی ترسیل کو یقینی بناتی ہے۔ Apple Developer Documentation کے مطابق، APNS ایپلیکیشن سرورز کے ساتھ دو طرفہ مواصلات کے لیے HTTP/2 پروٹوکول استعمال کرتا ہے۔

اہم نکات

  • APNS — تمام Apple ڈیوائسز پر push نوٹیفیکیشن پہنچانے کے لیے Apple کی مرکزی سروس
  • پروٹوکول — TLS کے ساتھ HTTP/2، ایپ سرور اور Apple سرورز کے درمیان دو طرفہ مواصلات
  • تصدیق — دو طریقے: Token-based (p8 کلید) اور Certificate-based (.p12 سرٹیفکیٹ)
  • ڈیوائسز — ہر ایک بھیجتے وقت شناخت کے لیے ایک منفرد push ٹوکن حاصل کرتا ہے
  • ترجیح — پیغام کی قسم کے مطابق فوری ترسیل (10) یا توانائی کی بچت (5)

APNS کیا ہے؟

Apple Push Notification Service (APNS) Apple کی ملکیتی سروس ہے جو ایپلیکیشن سرور سے صارفین کے ڈیوائسز تک push نوٹیفیکیشن روٹ کرتی ہے۔ FCM کے برعکس، APNS Android یا دیگر پلیٹ فارمز کو سپورٹ نہیں کرتا — یہ مکمل طور پر Apple ایکو سسٹم سے منسلک ہے۔

سروس ایک مستقل TLS کنکشن کے ذریعے کام کرتی ہے جو ہر Apple ڈیوائس شروع ہونے پر APNS سرورز کے ساتھ قائم کرتا ہے۔ یہ کنکشن بیک گراؤنڈ میں برقرار رکھا جاتا ہے اور کم سے کم تاخیر کے ساتھ نوٹیفیکیشن پہنچانے کے لیے استعمال ہوتا ہے۔

APNS ترسیل کے تمام بنیادی ڈھانچے کو سنبھالتا ہے: انکرپشن، تصدیق، ترجیح بندی، اور ڈیوائس کے دستیاب نہ ہونے پر دوبارہ بھیجنا۔ ڈویلپر کو صرف صحیح فارمیٹ شدہ پے لوڈ اور ایک درست push ٹوکن فراہم کرنے کی ضرورت ہے۔

APNS کا ارتقا

اصل میں، APNS پورٹ 2195–2196 پر بائنری پروٹوکول کے ذریعے کام کرتا تھا۔ 2015 سے، Apple نے سروس کو جدید HTTP/2 پروٹوکول میں منتقل کر دیا ہے، جو ملٹی پلیکسنگ، ہیڈر کمپریشن اور سرور push نوٹیفیکیشن کو سپورٹ کرتا ہے۔ HTTP/2 جون 2020 سے لازمی ہو گیا۔

Apple Push Notification Service کیسے کام کرتا ہے؟

APNS کے ذریعے push نوٹیفیکیشن کی ترسیل کا عمل پانچ مراحل پر مشتمل ہے: ڈیوائس رجسٹریشن، push ٹوکن حاصل کرنا، سرور کی طرف سے درخواست بھیجنا، APNS روٹنگ، اور ڈیوائس تک ترسیل۔

  • رجسٹریشن — شروع ہونے پر، ایپ registerForRemoteNotifications کال کرتی ہے، سسٹم APNS سے رابطہ کرتا ہے
  • ٹوکن — APNS ڈیوائس کو push ٹوکن واپس کرتا ہے — ڈیوائس پر ایپ کی شناخت کرنے والی ایک منفرد سٹرنگ
  • بھیجنا — ایپلیکیشن سرور ٹوکن اور پے لوڈ کے ساتھ https://api.push.apple.com پر POST درخواست بھیجتا ہے
  • روٹنگ — APNS ٹوکن کے ذریعے ڈیوائس تلاش کرتا ہے اور TLS کنکشن کے ذریعے پیغام پہنچاتا ہے
  • پروسیسنگ — iOS/macOS حالت کے مطابق نوٹیفیکیشن دکھاتا ہے یا ایپ کو بھیجتا ہے

اگر ڈیوائس دستیاب نہیں ہے (بند ہے یا نیٹ ورک نہیں ہے)، APNS ہر ایپ کے لیے تازہ ترین پیغام ذخیرہ کرتا ہے اور کنکشن بحال ہونے پر اسے پہنچاتا ہے۔ زیادہ سے زیادہ ذخیرہ کرنے کی مدت 4 ہفتے ہے، جس کے بعد پیغام حذف کر دیا جاتا ہے۔

APNS میں تصدیق: ٹوکن اور سرٹیفکیٹ

Apple push نوٹیفیکیشن بھیجتے وقت ایپلیکیشن سرور کی تصدیق کے دو طریقے سپورٹ کرتا ہے۔ ہر طریقے کی میعاد کی مدت، انتظام اور استعمال میں آسانی کے لحاظ سے اپنی خصوصیات ہیں۔

پیرامیٹرToken-based (p8)Certificate-based (.p12)
میعادغیر معینہ (کلید ختم نہیں ہوتی)سرٹیفکیٹ کی میعاد تک محدود (عام طور پر 1 سال)
روٹیشنضروری نہیں جب تک کلید سے سمجھوتہ نہ ہوسالانہ تبدیلی لازمی
ملٹی ایپاکاؤنٹ کی تمام ایپس کے لیے ایک کلیدہر ایپ کے لیے علیحدہ سرٹیفکیٹ
ماحولSandbox اور Production کے لیے ایک کلیدSandbox اور Production کے لیے مختلف سرٹیفکیٹ

Token-based تصدیق 2019 سے Apple کی تجویز کردہ طریقہ ہے۔ آپ Apple Developer Console میں ایک p8 کلید بناتے ہیں، اسے اپنے سرور پر اپ لوڈ کرتے ہیں، اور ہر APNS درخواست پر اس سے دستخط کرتے ہیں۔ کلید کبھی ختم نہیں ہوتی اور آپ کے اکاؤنٹ کی تمام ایپس کے لیے کام کرتی ہے۔

تصدیق کا کون سا طریقہ منتخب کریں

نئے پروجیکٹس کے لیے، Token-based تصدیق واضح طور پر ترجیحی ہے: پورے اکاؤنٹ کے لیے ایک p8 کلید، غیر معینہ، ماحول سے منسلک نہیں۔ Certificate-based (.p12) اب بھی لیگیسی پروجیکٹس میں استعمال ہوتا ہے لیکن اس میں سالانہ تبدیلی اور Sandbox اور Production کے لیے علیحدہ سرٹیفکیٹ کی ضرورت ہوتی ہے۔ CI/CD کی منصوبہ بندی کرتے وقت سرٹیفکیٹ کی میعاد ختم ہونے پر غور کریں۔

APNS push نوٹیفیکیشن کی اقسام

APNS push نوٹیفیکیشن کی تین اقسام کو سپورٹ کرتا ہے، جو ڈیوائس پر ان کے رویے اور درخواست کے اوصاف کی ضروریات میں مختلف ہیں۔ قسم کا انتخاب UX منظر نامہ اور پیغام کی فوری ضرورت پر منحصر ہے۔

  • Alert — عنوان، متن اور اختیاری ایکشن بٹن کے ساتھ معیاری نوٹیفیکیشن
  • Background — صارف کو دکھائے بغیر خاموش ڈیٹا کی ترسیل (سائلنٹ push)، application:didReceiveRemoteNotification میں ہینڈل کیا جاتا ہے
  • VOIP — VoIP ایپس (PushKit) کے لیے خصوصی قسم، ایپ بند ہونے پر بھی فوری ترسیل

Background نوٹیفیکیشن کے لیے، آپ کو content-available: 1 کلید بتانی ہوگی اور ترجیح 5 (توانائی کی بچت والی ترسیل) سیٹ کرنی ہوگی۔ اگر ایپ انہیں بروقت پروسیس نہیں کرتی تو سسٹم بیک گراؤنڈ نوٹیفیکیشن کی تعداد کو محدود کر سکتا ہے۔

ترسیل کی ترجیح کی تشکیل

APNS دو ترجیحی اقدار کو سپورٹ کرتا ہے: 10 (فوری ترسیل) اور 5 (توانائی کی بچت)۔ Alert نوٹیفیکیشن کے لیے 10 استعمال کریں — صارف کو انہیں فوری طور پر ملنا چاہیے۔ بیک گراؤنڈ نوٹیفیکیشن کے لیے 5 استعمال کریں — سسٹم بیٹری بچانے کے لیے ترسیل میں تاخیر کر سکتا ہے۔ بیک گراؤنڈ کے لیے غلط ترجیح APNS مسترد کرنے کا باعث بن سکتی ہے۔

APNS پے لوڈ فارمیٹ

APNS عام نوٹیفیکیشن کے لیے زیادہ سے زیادہ 4 KB اور VOIP کے لیے 5 KB سائز کے ساتھ JSON فارمیٹ میں پے لوڈ قبول کرتا ہے۔ پے لوڈ میں ڈسپلے سیٹنگز کے ساتھ لازمی aps ڈکشنری اور اختیاری کسٹم فیلڈز شامل ہیں۔

json
{
    "aps": {
        "alert": {
            "title": "نیا پیغام",
            "body": "آپ کی 3 غیر پڑھی ہوئی چیٹس ہیں"
        },
        "badge": 3,
        "sound": "default",
        "category": "message_category",
        "thread-id": "chat_room_42"
    },
    "customData": {
        "chatId": "42"
    }
}

thread-id کلید iOS نوٹیفیکیشن سینٹر میں نوٹیفیکیشن کو گروپ کرتی ہے۔ category کلید ایکشن بٹن دکھانے کے لیے نوٹیفیکیشن کو UNNotificationCategory سے جوڑتی ہے۔ ان کلیدوں کے بغیر، تمام نوٹیفیکیشن انفرادی طور پر ظاہر ہوتے ہیں۔

APNS پے لوڈ میں کسٹم فیلڈز

لازمی aps ڈکشنری کے علاوہ، APNS پے لوڈ میں اوپری سطح پر کوئی بھی کسٹم فیلڈ ہو سکتے ہیں۔ یہ فیلڈز نوٹیفیکیشن پروسیس کرتے وقت userInfo ڈکشنری کے ذریعے ایپ کے لیے قابل رسائی ہیں۔ کسٹم ڈیٹا اینٹیٹی آئیڈینٹیفائر، اسکرینز یا لنکس منتقل کرنے کے لیے آسان ہے۔ زیادہ سے زیادہ پے لوڈ سائز 4 KB ہے، لہٰذا push کے ذریعے بڑی مقدار میں ڈیٹا منتقل کرنے سے گریز کریں؛ نوٹیفیکیشن کھولنے کے بعد API کے ذریعے لوڈ کریں۔

HTTP/2 API کے ذریعے بھیجنے کی مثال

سرور سے push نوٹیفیکیشن بھیجنے کے لیے، آپ کو صحیح تصدیقی ہیڈرز کے ساتھ APNS اینڈ پوائنٹ پر POST درخواست کرنی ہوگی۔ ذیل میں Token-based تصدیق استعمال کرتے ہوئے Node.js میں ایک مثال دی گئی ہے۔

js
const http2 = require("http2")
const fs = require("fs")
const jwt = require("jsonwebtoken")

const token = jwt.sign(
    { iss: "TEAM_ID", iat: Math.floor(Date.now() / 1000) },
    fs.readFileSync("AuthKey.p8"),
    { algorithm: "ES256", keyid: "KEY_ID" }
)

const payload = JSON.stringify({
    aps: { alert: { title: "ہیلو!", body: "ٹیسٹ push" } }
})

const client = http2.connect(
    "https://api.push.apple.com"
)

const req = client.request({
    ":method": "POST",
    ":path": "/3/device/DEVICE_PUSH_TOKEN",
    "authorization": "bearer " + token,
    "apns-push-type": "alert",
    "apns-topic": "com.example.app",
    "apns-priority": "10"
})
req.end(payload)

req.on("response", (headers) => {
    if (headers[":status"] === 200) {
        console.log("Push کامیابی سے بھیج دیا گیا")
    }
})

بھیجنے کے بعد، APNS کامیاب ترسیل پر HTTP سٹیٹس 200 یا جوابی باڈی میں وضاحت کے ساتھ ایرر کوڈ واپس کرتا ہے۔ token-unregistered (410) ایررز کو ہینڈل کرنا ضروری ہے — ایسے ٹوکنز کو سرور سے ہٹا دینا چاہیے، کیونکہ ایپ ڈیوائس سے حذف ہو چکی ہے۔

APNS ایررز اور ان کا ہینڈلنگ

APNS ہر بھیجنے کی درخواست کے لیے HTTP سٹیٹس کوڈ واپس کرتا ہے۔ کامیاب ترسیل سٹیٹس 200 واپس کرتی ہے۔ ایررز کے لیے مختلف ہینڈلنگ حکمت عملیوں کی ضرورت ہوتی ہے۔ BadDeviceToken (400) یا Unregistered (410) — ڈیوائس ٹوکن پرانا ہو گیا ہے اور اسے سرور سے ہٹا دینا چاہیے۔ PayloadTooLarge (413) — 4 KB کی حد تجاوز کر گئی، پے لوڈ کم کریں۔

TooManyRequests (429) — درخواست کی حد تجاوز کر گئی۔ APNS فی سیکنڈ بھیجنے کی تعداد پر کوٹہ مقرر کرتا ہے۔ 429 موصول ہونے پر، ایکسپونینشل بیک آف (exponential backoff) لاگو کریں اور دوبارہ کوشش کریں۔ فی HTTP/2 کنکشن فی سیکنڈ 100 درخواستوں سے تجاوز نہ کرنے کی سفارش کی جاتی ہے۔

APNS کی طرف سے ایررز — 500 اور 503 (اندرونی سرور ایرر / سروس دستیاب نہیں)۔ یہ Apple کے بنیادی ڈھانچے کی عارضی خرابیاں ہیں۔ ایسی صورتوں میں، 1–5 سیکنڈ کی تاخیر سے دوبارہ کوشش کریں، 3 سے زیادہ کوششیں نہ کریں۔ مکمل طور پر کام کرنے والے سرور کے ساتھ مستقل 5xx ایررز نایاب ہیں اور عام طور پر TLS کنکشن کے مسائل سے متعلق ہوتے ہیں۔

Production ماحول کے لیے، ٹوکن، ایرر کوڈ اور وقت کے ساتھ تمام APNS ایررز کی لاگنگ کو یقینی بنائیں۔ اس سے سرٹیفکیٹس، کوٹے یا مخصوص ڈیوائس ٹوکنز کے مسائل کی فوری شناخت میں مدد ملے گی۔ اگر Certificate-based تصدیق استعمال کر رہے ہیں تو باقاعدگی سے سرٹیفکیٹ کی میعاد ختم ہونے کی تاریخیں چیک کریں۔

اکثر پوچھے گئے سوالات

APNS کون سے پورٹ استعمال کرتا ہے؟

APNS HTTP/2 API کے لیے TCP 443 (HTTPS) کے ذریعے کام کرتا ہے۔ پہلے، بائنری پروٹوکول کے لیے پورٹ 2195 اور 2196 استعمال ہوتے تھے۔ جون 2020 سے، Apple پورٹ 443 پر صرف HTTP/2 کے استعمال کی ضرورت ہے۔ یقینی بنائیں کہ آپ کے سرور کی api.push.apple.com تک رسائی ہے۔

APNS میں Sandbox اور Production ماحول کیا ہیں؟

Sandbox push نوٹیفیکیشن ڈیبگ کرنے کے لیے APNS کا ٹیسٹ ماحول ہے۔ Production حقیقی صارفین کے لیے لائیو ماحول ہے۔ Token-based تصدیق کے ساتھ، ایک کلید دونوں ماحول کے لیے کام کرتی ہے — اینڈ پوائنٹ مختلف ہے: api.sandbox.push.apple.com یا api.push.apple.com۔

ڈیوائس کا push ٹوکن کتنی بار تبدیل ہوتا ہے؟

Push ٹوکن درج ذیل صورتوں میں تبدیل ہو سکتا ہے: بیک اپ سے ایپ بحال کرنا، ایپ دوبارہ انسٹال کرنا، OS اپ ڈیٹ، نیٹ ورک سیٹنگز ری سیٹ۔ ٹوکن تبدیل نہیں ہوتا App Store کے ذریعے معمول کی ایپ اپ ڈیٹ کے دوران۔ سرور کو BadDeviceToken (400) ایرر کو ٹوکن ہٹانے کے اشارے کے طور پر ہینڈل کرنا چاہیے۔

APNS میں زیادہ سے زیادہ پے لوڈ سائز کیا ہے؟

عام alert/background نوٹیفیکیشن کے لیے 4 KB (4096 بائٹس)۔ PushKit کے ذریعے VOIP نوٹیفیکیشن کے لیے — 5 KB (5120 بائٹس)۔ سائز سے تجاوز کرنے پر PayloadTooLarge (413) ایرر آتا ہے۔ پے لوڈ کو کم سے کم رکھنے اور اضافی ڈیٹا سرور کے ذریعے لوڈ کرنے کی سفارش کی جاتی ہے۔

کیا ڈیوائس پر انٹرنیٹ کے بغیر push بھیجا جا سکتا ہے؟

APNS انٹرنیٹ کنکشن کے بغیر ڈیوائس کو نوٹیفیکیشن نہیں پہنچا سکتا۔ اگر ڈیوائس آف لائن ہے، APNS 28 دنوں تک تازہ ترین پیغام (فی ایپ فی ڈیوائس) ذخیرہ کرتا ہے۔ کنکشن بحال ہونے پر، پیغام فوری طور پر پہنچایا جاتا ہے۔ پرانے پیغامات محفوظ نہیں ہوتے۔

خلاصہ

  • APNS — iOS، macOS، watchOS اور tvOS پر push پہنچانے کے لیے Apple کا بنیادی ڈھانچہ سروس
  • Push ٹوکن — registerForRemoteNotifications کے ذریعے حاصل کردہ منفرد ڈیوائس شناخت کنندہ
  • HTTP/2 — ملٹی پلیکسنگ کے ساتھ جدید APNS پروٹوکول، 2020 سے لازمی
  • تصدیق — Token-based (p8) میعاد اور لچک کے لحاظ سے Certificate-based (.p12) سے افضل
  • Alert, Background, VOIP — مختلف ترسیل کے قوانین کے ساتھ push نوٹیفیکیشن کی تین اقسام
  • پے لوڈ — لازمی aps ڈکشنری اور اختیاری کسٹم فیلڈز کے ساتھ 4 KB تک JSON
  • ذخیرہ — APNS آف لائن ڈیوائسز کے لیے 28 دنوں تک ایک تازہ ترین پیغام ذخیرہ کرتا ہے

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

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

مزید پڑھیں