Her iOS anlık bildirim entegrasyonu aynı kapıda başlar: Apple Anlık Bildirim hizmetine, uygulamanızın kullanıcılarına mesaj göndermeye yetkili olduğunuzu kanıtlamak. Apple bunu yapmanız için size iki yol sunar — bir APNs kimlik doğrulama anahtarı (.p8) veya bir APNs sertifikası (.p12) — ve aralarındaki fark, bir kez yapılandıracağınız bir kimlik bilgisi ile her yıl, genellikle en kötü anda yenileyeceğiniz bir kimlik bilgisi arasındaki farktır.
Bu kılavuz, APNs kimlik doğrulamasının aslında nasıl çalıştığını, .p8 anahtarının .p12 sertifikasına karşı ne zaman kullanılacağını ve bunun yanlış yapılmasından kaynaklanan birkaç hatayı açıklar.
APNs kimlik doğrulaması nasıl çalışır
Anlık bildirim sağlayıcınız — PushEngage veya kendi sunucunuz — bir bildirim gönderdiğinde, Apple’ın APNs sağlayıcı API’sine bağlanır ve iki şeyi kanıtlaması gerekir: sizin adınıza gönderme yetkisine sahip olduğunu ve uygulamanızın paket kimliğini (APNs terimlerinde “konu”) hedeflemeye izinli olduğunu. .p8 anahtarı ve .p12 sertifikası, bunu kanıtlamanın yalnızca iki farklı yoludur.
Cihaz tarafı ayrıdır. Uygulamanız APNs’e kaydolur ve bir cihaz jetonu alır — sağlayıcınız hangi kimlik bilgilerini kullanırsa kullansın bu kısım asla değişmez. Kimlik doğrulama tamamen bir sunucudan Apple’a yönelik bir konudur, bu yüzden uygulamanızın ikili kodunu değiştirmeden yöntemleri değiştirebilirsiniz.
P8 kimlik doğrulama anahtarı (bunu kullanın)
.p8, jeton imzalayan bir anahtardır. Sağlayıcınız, APNs’e her bağlantıyı kimlik doğrulaması yapan kısa ömürlü JSON Web Jetonları oluşturmak için bunu kullanır. Özellikleri, onu neredeyse herkes için varsayılan seçenek haline getirir:
- Asla sona ermez. Yıllık yenileme yok, unutulan bir tarihte anlık bildirim kesintisi yok.
- Tek bir anahtar, geliştirici hesabınızdaki her uygulama için geçerlidir. İkinci bir uygulama yayınlarsanız aynı anahtar onu da kimliklendirir.
- Hem geliştirme hem de üretim ortamları için çalışır — sanal alan/üretim sertifika çiftleri yok.
- Üç değer olarak iletilir: .p8 dosyasının kendisi, 10 karakterli Anahtar Kimliği ve Ekip Kimliğiniz.
Bir tane oluşturmadan önce bilmeniz gereken iki şey. Apple, hesap başına yalnızca iki aktif APNs anahtarıyla sizi sınırlar, bu nedenle büyük kuruluşlar anahtar oluşturmayı kasıtlı bir eylem olarak ele almalı, proje başına alışkanlık olarak değil. Ve .p8 dosyası yalnızca oluşturma sırasında bir kez indirilebilir — ekibinizin bulabileceği bir yere kaydedin, çünkü Apple size onu tekrar vermeyecektir.
.p12 sertifikası (eski yöntem)
.p12, Apple tarafından verildikten sonra Anahtar Zinciri Erişimi'nden dışa aktarılan bir TLS istemci sertifikasıdır. Jetonları imzalamak yerine bağlantının kendisini kimliklendirir. Hala çalışıyor ve bazı kurumsal güvenlik politikaları hala bunu gerektiriyor, ancak kısıtlamaları Apple’ın yeni entegrasyonları anahtara yönlendirmesinin nedenidir:
- Her yıl sona erer. Ani, toplam anlık bildirim hatasının en yaygın nedeni, sessizce süresi dolmuş bir APNs sertifikasıdır.
- Tek bir uygulamayla kapsamlıdır. Her paket kimliği kendi sertifikasına ihtiyaç duyar ve her sertifika kendi yenileme takvimine ihtiyaç duyar.
- Mac gerektirir. İmzalama-istek-ve-Keychain dışa aktarma dansının tarayıcı tabanlı bir yolu yoktur.
Hangisini kullanmalısınız?
| .p8 kimlik doğrulama anahtarı | .p12 sertifikası | |
|---|---|---|
| Son kullanma tarihi | Asla | Her 12 ayda bir |
| Kapsam | Hesaptaki tüm uygulamalar | Bir paket kimliği |
| Ortamlar | Geliştirme + üretim | Sertifika başına ayrı veya birleştirilmiş |
| Oluşturulduğu yer | Herhangi bir tarayıcı | Keychain Erişimi olan Mac |
| Hesap sınırı | 2 aktif anahtar | Uygulama başına çiftler |
| Ne zaman kullanılır | Neredeyse her zaman | Politika sertifikaları gerektiriyor |
Dürüst cevap: Güvenlik politikası sertifika yolunu zorlamadığı sürece .p8 anahtarını kullanın. Daha az hareketli parça, yenilenecek bir şey yok, tüm portföyünüz için tek bir kimlik bilgisi.
Üç dakikada bir .p8 anahtarı oluşturma
- Apple Geliştirici hesabınızda Sertifikalar, Kimlikler ve Profiller → Anahtarlar bölümüne gidin ve yeni bir anahtar kaydedin.
- Adlandırın, Apple Push Bildirim hizmeti (APNs) onay kutusunu etkinleştirin ve devam edin.
- .p8 dosyasını indirin (unutmayın: tek şans), onay ekranında gösterilen Anahtar Kimliğini ve hesap üyelik sayfasındaki Ekip Kimliğinizi not edin.
- Bu üç değeri de anlık bildirim sağlayıcınıza yükleyin. PushEngage'de bu, uygulama ayarlarınızdaki tek bir ekrandır — APNs kimlik bilgileri kılavuzu ekran görüntüleriyle birlikte bunu adım adım açıklar.
Bu açıklanan hatalar
Şaşırtıcı sayıda "push bozuk" bileti, kılık değiştirmiş kimlik bilgisi sorunlarıdır. Olağan şüpheliler:
- BadDeviceToken — sandbox'ta oluşturulmuş bir uygulamanın belirtecini üretim ortamından gönderiyorsunuz veya tam tersi. Xcode'dan gelen hata ayıklama derlemeleri sandbox ile konuşur; TestFlight ve App Store derlemeleri üretim ile konuşur.
- TopicDisallowed — kimlik bilgisi, hedeflediğiniz paket kimliğini kapsamaz. Tipik olarak uygulama başına .p12 sertifikaları ve kopyalanıp yapıştırılmış bir yapılandırma ile olur.
- Ani %100 teslimat hatası — süresi dolmuş bir .p12. Başka herhangi bir şeyi kontrol etmeden önce sertifikanın son kullanma tarihini kontrol edin.
- InvalidProviderToken — iptal edilmiş bir .p8 anahtarı veya geçerli bir dosyanın yanında yanlış Anahtar Kimliği/Ekip Kimliği çifti.
Bu, entegrasyonunuzda nereye uyuyor
APNs kimlik bilgisi, tam olarak bir kurulum oturumunun ilk adımıdır. .p8'i PushEngage'e bir kez yükleyin ve sonraki her şey — iOS SDK 1.0 entegrasyonu, bildirim uzantınız aracılığıyla zengin medya, tetiklenen kampanyalar ve teslimatın kendisi — daha fazla tören yapmadan buna karşı çalışır. Firebase'den geliyorsanız, FCM'ye verdiğiniz aynı anahtar burada da çalışır, bu da iOS'ta FCM'den geçişin bir öğleden sonra projesi olmasının nedenlerinden biridir.
Kurulumdan sonra gelen strateji katmanı için uygulama push pazarlama kılavuzundan başlayın. Ve göndermeye hazır olduğunuzda, tam iOS kurulum kılavuzu sizi bir saatten kısa sürede kimlik bilgisinden ilk kampanyaya götürür.