تبدأ كل عملية تكامل لإشعارات الدفع لنظام iOS عند نفس البوابة: إثبات خدمة إشعارات الدفع من Apple بأنك مسموح لك بإرسال رسائل لمستخدمي تطبيقك. تمنحك Apple طريقتين للقيام بذلك - مفتاح مصادقة APNs (.p8) أو شهادة APNs (.p12) - والفرق بينهما هو الفرق بين بيانات اعتماد تقوم بتكوينها مرة واحدة وتلك التي ستقوم بتجديدها كل عام، وغالبًا في أسوأ وقت ممكن.
يشرح هذا الدليل كيف تعمل مصادقة APNs فعليًا، ومتى تستخدم مفتاح .p8 مقابل شهادة .p12، وعدد قليل من الأخطاء التي يمكن تتبعها إلى الخطأ في هذا الأمر.
كيف تعمل مصادقة APNs
عندما يرسل موفر الإشعارات الخاص بك - PushEngage، أو الخادم الخاص بك - إشعارًا، فإنه يتصل بواجهة برمجة تطبيقات موفر APNs الخاصة بـ Apple ويجب أن يثبت شيئين: أنه مصرح له بالإرسال نيابة عنك، وأنه مسموح له باستهداف معرف حزمة تطبيقك (الموضوع "topic" بمصطلحات APNs). مفتاح .p8 وشهادة .p12 هما مجرد طريقتين مختلفتين لإثبات ذلك.
جانب الجهاز منفصل. يسجل تطبيقك لدى APNs ويتلقى رمزًا مميزًا للجهاز - هذا الجزء لا يتغير أبدًا بغض النظر عن بيانات الاعتماد التي يستخدمها موفر الخدمة الخاص بك. المصادقة هي مجرد مسألة خادم إلى Apple، وهذا هو السبب في أنه يمكنك التبديل بين الطرق دون لمس ملف التطبيق الثنائي الخاص بك.
مفتاح المصادقة .p8 (استخدم هذا المفتاح)
مفتاح .p8 هو مفتاح توقيع الرموز. يستخدمه موفر الخدمة الخاص بك لإنشاء رموز ويب JSON قصيرة الأجل تصادق كل اتصال بـ APNs. خصائصه تجعله الخيار الافتراضي للجميع تقريبًا:
- لا تنتهي صلاحيته أبدًا. لا تجديد سنوي، لا انقطاع في الإشعارات في تاريخ منسي.
- مفتاح واحد يغطي كل تطبيق في حساب المطور الخاص بك. عند شحن تطبيق ثانٍ، يصادق نفس المفتاح عليه.
- يعمل لكل من بيئات التطوير والإنتاج - لا توجد أزواج شهادات منفصلة لبيئة الاختبار وبيئة الإنتاج.
- ينتقل كثلاث قيم: ملف .p8 نفسه، ومعرف المفتاح المكون من 10 أحرف، ومعرف فريقك.
شيئان يجب معرفتهما قبل إنشاء واحد. تحدد Apple بحد أقصى مفتاحين نشطين لـ APNs لكل حساب، لذا يجب على المؤسسات الكبيرة التعامل مع إنشاء المفاتيح كإجراء متعمد، وليس كعادة لكل مشروع. ويمكن تنزيل ملف .p8 مرة واحدة فقط، وقت الإنشاء - قم بتخزينه في مكان يمكن لفريقك العثور عليه، لأن Apple لن تعطيه لك مرة أخرى.
شهادة .p12 (المسار القديم)
شهادة .p12 هي شهادة عميل TLS، يتم تصديرها من Keychain Access بعد أن تصدرها Apple. إنها تصادق الاتصال نفسه بدلاً من توقيع الرموز. لا تزال تعمل، ولا تزال بعض سياسات أمان المؤسسات تتطلبها، ولكن قيودها هي السبب في أن Apple توجه عمليات التكامل الجديدة نحو المفتاح:
- تنتهي صلاحيته كل عام. السبب الأكثر شيوعًا لفشل الدفع المفاجئ والكلي هو شهادة APNs التي انتهت صلاحيتها بصمت.
- نطاقه لتطبيق واحد. كل معرف حزمة يحتاج إلى شهادته الخاصة، وكل شهادة تحتاج إلى تقويم تجديد خاص بها.
- يتطلب جهاز Mac. لا يوجد مسار للمتصفح فقط لرقصة تصدير طلب التوقيع وسلسلة المفاتيح.
أيهما يجب أن تستخدم؟
| مفتاح مصادقة .p8 | شهادة .p12 | |
|---|---|---|
| تنتهي صلاحيته | أبدًا | كل 12 شهرًا |
| النطاق | جميع التطبيقات في الحساب | معرف حزمة واحد |
| البيئات | تطوير + إنتاج | منفصل أو مدمج لكل شهادة |
| تم إنشاؤه من | أي متصفح | جهاز Mac مع وصول سلسلة المفاتيح |
| حد الحساب | مفتاحان نشطان | أزواج لكل تطبيق |
| استخدم عندما | دائمًا تقريبًا | تتطلب السياسة شهادات |
الإجابة الصادقة: استخدم مفتاح .p8 ما لم تفرض سياسة أمنية مسار الشهادة. أجزاء متحركة أقل، لا شيء للتجديد، مصادقة واحدة لمجموعة منتجاتك بالكامل.
إنشاء مفتاح .p8 في ثلاث دقائق
- في حساب المطور الخاص بك على Apple، انتقل إلى الشهادات، المعرفات & الملفات الشخصية → المفاتيح وسجل مفتاحًا جديدًا.
- قم بتسميته، وحدد مربع الاختيار خدمة إشعارات Apple Push (APNs)، ثم تابع.
- قم بتنزيل ملف .p8 (تذكر: فرصة واحدة)، ولاحظ معرف المفتاح المعروض على شاشة التأكيد ومعرف فريقك من صفحة عضوية الحساب.
- قم بتحميل القيم الثلاث إلى مزود الدفع الخاص بك. في PushEngage، هذه شاشة واحدة في إعدادات التطبيق الخاص بك - دليل بيانات اعتماد APNs يمر عبرها مع لقطات شاشة.
الأخطاء التي يشرحها هذا
نسبة مدهشة من تذاكر "الدفع معطل" هي مشاكل بيانات اعتماد ترتدي قناعًا. المشتبه بهم المعتادون:
- BadDeviceToken — أنت ترسل رمز تطبيق تم بناؤه في بيئة الصندوق الرملي عبر بيئة الإنتاج، أو العكس. عمليات البناء التجريبية من Xcode تتحدث إلى الصندوق الرملي؛ TestFlight وعمليات بناء متجر التطبيقات تتحدث إلى بيئة الإنتاج.
- TopicDisallowed — بيانات الاعتماد لا تغطي معرف الحزمة الذي تستهدفه. شائع مع شهادات .p12 لكل تطبيق وتكوين تم نسخه ولصقه.
- فشل تسليم مفاجئ بنسبة 100٪ — انتهاء صلاحية .p12. تحقق من تاريخ انتهاء صلاحية الشهادة قبل التحقق من أي شيء آخر.
- InvalidProviderToken — مفتاح .p8 تم إلغاؤه، أو زوج غير صحيح من معرف المفتاح/معرف الفريق بجانب ملف صالح.
أين يتناسب هذا مع تكاملك
بيانات اعتماد APNs هي الخطوة الأولى من جلسة إعداد واحدة بالضبط. قم بتحميل .p8 إلى PushEngage مرة واحدة، وكل شيء لاحقًا — تكامل SDK iOS 1.0، والوسائط الغنية عبر امتداد الإشعارات الخاص بك، والحملات المشغلة، والتسليم نفسه — يعمل ضدها دون مزيد من المراسم. إذا كنت قادمًا من Firebase، فإن نفس المفتاح الذي أعطيته لـ FCM يعمل هنا، وهو جزء من سبب كون الترحيل من FCM على iOS مشروعًا يستغرق فترة ما بعد الظهيرة.
بالنسبة لطبقة الاستراتيجية التي تأتي بعد الإعداد، ابدأ بـ دليل تسويق دفع التطبيقات. وعندما تكون جاهزًا للإرسال، يأخذك دليل الإعداد الكامل لنظام iOS من بيانات الاعتماد إلى الحملة الأولى في أقل من ساعة.