React Native OneSignal Entegrasyonu
Pek çok defa yapmama rağmen sürekli entegrasyon sürecinde bazı hataları tekrar tekrar yapmamdan kaynaklı bu şekilde bir makale yazma…
React Native OneSignal Entegrasyonu
Pek çok defa yapmama rağmen sürekli entegrasyon sürecinde bazı hataları tekrar tekrar yapmamdan kaynaklı bu şekilde bir makale yazma ihtiyacı hissettim. Diğer makalelerim de olduğu gibi biraz daha sözel olarak ilerleyip kritik bölümlerde ekran görüntüsü ekleceğim.
Hemen aşağılara scroll edip ekran görüntüsü ve kod parçacığı arama, çünkü kurulum mantığını anlamadan yaptığın şeylerin çalışma mantığını da anlaman mümkün değil, dolayısıyla problem yaşadığında çözümünüde yapamazsın.
Mantık olarak aslında basit,
Android Tarafı İçin:
- Uygulamaya firebase entegre etmek zorundasınız.
- Firebase entegre ettikten sonra Firebase üzerinden bulunan Cloud Messaging özelliğini enable ediyorsunuz.
- Firebase Cloud Messaging sonrasında buradaki keylerinizi Onesignal tarafına tanımlıyorsunuz
iOS Tarafı İçin:
Aşağıdaki akış büyük oranda Automatically manage signing seçeneği işaretliyse devam eden şekilde ilerliyor. Eğer siz provision profilinizi manuel yönetiyorsanız eklediğiniz özellikler (Push notification), oluşturulan group ve aspns servis özellikler provision profiliniz içerisinde olması gerekiyor. Yani bu işlemler tamamlanırken provision profilinizi de update etmeniz gerekiyor. Ben genellikle manuel yönetiyorum fakat best case bu değil ve makale çok uzun olacağı için auto için yazıyor eğer ihtiyaç olursa manuel yönetimi için de ayrı bir makale yazarım.

Automatically manage signing aktif
- Uygulamanıza ilk olarak push notification özelliği ekliyorsunuz. Fakat push notification özelliği ekleyince eğer manuel sertifika kullanıyorsanız bunu yenilemeniz gerekiyor, eğer Automatically manage signing işaretliyse bunu otomatik olarak sertifikanıza ekliyor.
- Yine uygulamanıza background modes ekleyip buradan remote notification özelliğini aktif ediyorsunuz.
- Daha sonrasında notification için yeni bir target eklemeniz gerekiyor.
- Bu target ile mevcut appinizi container oluşturup groupluyorsunuz.
- iOS tarafında app ile ilgili işlemler bitse de entegrasyon daha bitmedi. Çünkü Apple tarafından 3rd parti notification erişim izni için sertifika oluşturmanız gerekiyor.
- Apple tarafında aspns sertifika oluşturuyorsunuz.
- Oluşturduğunuz sertifikayı indirip açıyorsunuz ve local sertifika ortamına kaydediyorsunuz.
- Local sertifika ortamından tekrar dışarı aktarıyorsunuz (Biliyorum çok alakasız geliyor fakat mantığı var.)
- Dışarı aktardığınız sertifika, aspns key, apple developer team id ve bundle idleriniz ile Onesignale kayıt oluyorsunuz.

Onesignal iOS Kayıt Ekranı
Şimdi teknik detaylara girmeden tüm işlerim mantığı aslında sizin 3rd parti notification için Onesignal tarafına izin vermenizi kapsıyor. Android tarafında zaten Firebase tarafına kayıt olup Cloud Messagingi aktif edince Firebase üzerinden notification gönderebiliyor durumda oluyorsunuz. Aynı şekilde iOS tarafında notification tarafını aktif edince local bildirim atabiliyor durumda oluyorsunuz sonrasonda aspns keyini ve sertifikasını alıp 3rd parti olarak Onesignale izin veriyorsunuz.
Yani Onesignal entegrasyon sürecinin mantığı uygulamaya ilgili ortamlar için izinleri alıp bu izinleri Onesignale ileterek tüm süreci Onesignal üzerinden yürütmek üzerine kurulu.
Ve tüm bu süreç için Onesignalin kendi dökümantasyonu aşırı yavaş ve gereksiz, çünkü manuel provisional profili yönetimi de var ve karışıyor ortalık.
Onesignal Android Entegrasyonu
Burası basit olduğu için öncelik verdim. Aslında akış basit,
-
- Firebase Projesi Oluşturmak

- Android projesi seçmek, package name gibi bilgileri girmek.

- Daha size verilen GoogleService.json dosyasını Android/App bölümünün içerisine atmak.

- Daha sonrasında cloud messaging bölümüne gelip legacy cloud messagi google console üzerinden aktif etmek.



- Daha sonra bu keyleri Onesignal tarafına girmek.

Android tarafında çok fazla problem yaşanmıyor problem yaşanılan noktalar genellikle firebase tarafında oluyor. Firebase entegrasyonu tam olmazsa veya yanlış klasörde googleservice.json olursa oluyor. Herhangi bir problem yaşamanız durumunda Firebase ile entegrasyonu kontrol etmeniz gerekiyor. Karşılaşılan basit hataların çözümü çok rahatlıkla stackoverflow üzerinden bulunabiliyor, onesignal çalışmazsa firebase üzerinde cloud messaging üzerinden test notificationları gönderebilirsiniz böylelikle sorunun firebase tarafında mı yoksa onesignal tarafından mı olduğunu anlayabilirsiniz. Eğer firebase cloud messaging tarafından notification giderse sorun onesignal tarafındadır.

iOS Onesignal Kurulumu
iOS tarafı iki bölümden oluşuyor.
-
- Bölüm XCode üzerinden Push Notification, Background Modes, Yeni Notification Targeti ve bunları groupladığınız bölüm
-
- Bölüm ise Apple certificate alanı üzerinden Apple Push Notifications service (APNs) oluşturduğunuz ve bunu bilgisayarının sertifika bölümüne kaydettikten sonra p12 veya p8 formatında export ettiğiniz bölüm
- Bölüm (XCode Ayarlamaları)
Aslında sözel olarak basit, ana projeye 3 tane yeni Capability ekliyorsunuz (Push Notification, Background Modes ve Group), yeni bir target oluşturuyorsunuz ve buna da group Capability’sini ekliyorsunuz ve ortak otomatik olarak oluşturulan group idsini ikisine veriyorsunuz.
- Push Notification Capability Ekleme






Proje üzerindeyken bu 3 tane Capabilityi ekleyip gösterdiğim şekilde ayarlamaları yapıyoruz. Sonrasında bildirim için yeni target ekliyoruz.

Sol alttaki Artı İşareti
İsim olarak, OneSignalNotificationServiceExtension veriyoruz. Bunun için oluşturulan schema kullanılsın mı sorusuna hayır diyoruz.

Bu Target üzerindeyken tekrardan Capability ekle deyip, App Group seçiyoruz


ve Aynı grup idyi buraya giriyoruz ve buradaki işlemlerimiz tamamlanmış oluyor. Eğer aşadaki gibi bir uyarı alıyorsunuz muhtemelen oluşturduğunuz capabilityler provisional profiliniz ile uyuşmuyor demektir. Bu durumda automatically manage signing devreye girip apple tarafında bunları oluşturup güncellemesini bekliyoruz eğer yapmıyorsa muhtemelen auto sign bölümünde problem vardır demektir. Eğer manuel provisional profile yönetiyorsanız bu özellikleri içeren güncel sertifikayı apple certificate bölümünden yönetmeniz gerekmektedir. Eğer aşağıdaki bölüm gibi hata görmüyorsanız bu bölümü başarıyla tamaladınız demektir.

-
- Apple Certificate ve P8 oluşturulması
Apple Certificate bölümünden Keys bölümüne gidiyorsunuz ve yeni key ekle diyorsunuz.




Bu şekillerde sertikanızı oluşturup indiriyorsunuz. Daha sonra sertifikanızı Anahtar zincir erişim bölümüne kaydetmiş oluyorsunuz.

Bu bölüme geldiğinizde indirdiğiniz sertifikayı görüyor olmanız gerekiyor.

O bölümde bu şekilde Apple Push Services şeklinde uygulamanız bundle isminizi gördüyseniz doğru yaptınız demektir. Şimdi bunu export etmeniz gerekiyor. Üzerine sağ tıklayınca:

Gibi dışa aktar seçeniği göreceksiniz.

Buradan p12 formatında dışarı aktararak ikinci bölümü de tamamlamış oluyorsunuz.

Buradan p12 formatını seçiyorsunuz, Key ID bölümüne Apple certificates bölümündeki oluşturduğunuz key idsini yazıyorsunuz. Team id ise sizin developer hesabınızda bulunur. App bundle id ise zaten xcode üzerinde gördüğünüz Bundle identifier alanıdır.

Onesignal bölümünü de bu şekilde doldurup onayladıktan sonra işlemler tamamdır.
React native tarafına
- yarn add react-native-onesignal
Diyerek paketimizi kuruyoruz. Sonrasında basic anlamda aşağıdaki gibi bir kurulum yapıp testlerinizi yapabilir durumda olursunuz.

Onesignal tarafında iOS Simülatör üzerinde test yapamazsınız fakat android üzerinde yapabilirsiniz. Onesignal paneli üzerinden

Kayıtlı kullanıcılarınızı görüntüleyebilirsiniz.

Yukarıdaki şekilde de bildirim gönderip testlerinizi yapabilirsiniz.
메타데이터
- post_id
- 3f93a71b2f3
- slug
- react-native-onesignal-entegrasyonu-3f93a71b2f3
- url
- https://medium.com/@myzorrrr/react-native-onesignal-entegrasyonu-3f93a71b2f3
- canonical_url
- https://medium.com/@myzorrrr/react-native-onesignal-entegrasyonu-3f93a71b2f3
- author_url
- https://medium.com/@myzorrrr
- status
- ok
- fetched_at
- 2026-07-25 12:44:45