Gereksinimler
- Yönetilen bir Expo uygulaması. Bare React Native uygulamaları için React Native SDK kurulumu’na bakın.
- Expo development build
- Expo SDK 53+ (React Native 0.79+), Yeni Mimari etkinleştirilmiş olmalı
- EAS CLI (EAS Build dokümantasyonu)
- Yapılandırılmış OneSignal uygulaması ve platformu
- Xcode 14+ ile macOS (kurulum talimatları Xcode 16.2 kullanır)
- iOS 12+, iPadOS 12+ ile cihaz veya iOS 16.2+ çalıştıran Xcode simülatörü
- CocoaPods 1.16.2+
- Google Play Store (Services) yüklü Android 7.0+ cihaz veya emülatör
OneSignal uygulamanızı ve platformunuzu yapılandırın
OneSignal uygulamanızı desteklediğiniz platformlarla yapılandırın — Apple (APNs), Google (FCM), Huawei (HMS) ve/veya Amazon (ADM).Adım adım kurulum talimatları
Adım adım kurulum talimatları
Uygulamanızı oluşturun veya seçin

İlk OneSignal uygulamanızı, Kuruluşunuzu ve kanalınızı kurma.
Platform kimlik bilgilerini yapılandırın
- Android: Firebase Kimlik Bilgilerini Ayarlayın
- iOS: p8 Token (Önerilen) veya p12 Sertifikası
- Amazon: API Anahtarı Oluşturun
- Huawei: OneSignal’ı Yetkilendirin
Uygulama ID'nizi kaydedin ve SDK'yı yükleyin

Uygulama ID'nizi kaydedin ve ek ekip üyelerini davet edin.
SDK kurulumu
1. SDK’yı ekleyin
Expo CLI kullanarak OneSignal Expo plugin’ini yükleyin.react-native-onesignal paketini projenize ekleyin.
2. Plugin’i yapılandırın
app.json (veya app.config.js / app.config.ts) dosyanızı açın. Aşağıdaki ayarları eklemelisiniz.
Gerekli ayarlar
UIBackgroundModes anahtarını ["remote-notification"] olarak ayarlanmış şekilde içermelidir.aps-environmentdeğerini test için"development", TestFlight ve App Store build’leri için"production"olarak ayarlayın.
Ek plugin prop'ları.
Ek plugin prop'ları.
İsteğe bağlı: Konum modülünü devre dışı bırakın
UygulamanızOneSignal.Location kullanmıyorsa OneSignal Expo plugin props içinde disableLocation değerini true olarak ayarlayın. Bu seçenek react-native-onesignal 5.5.1 veya üzerini gerektirir. Plugin, react-native-onesignal konum modülünü hariç tutsun diye yerel bağımlılık çözümlemeyi yapılandırır. iOS’ta plugin, CocoaPods çözümlemesi sırasında kullanılan Podfile ortam ayarını yazar. Android’de plugin, oluşturulan Gradle properties içine onesignal.disableLocation=true yazar.
Podfile dosyanız Notification Service Extension veya Live Activity widget hedefinde açıkça OneSignalXCFramework bildiriyorsa, OneSignalXCFramework/OneSignal veya OneSignalXCFramework/OneSignalLiveActivities gibi modüler bir alt spesifikasyon kullanın. Toplu pod 'OneSignalXCFramework' bildirimi OneSignalComplete olarak çözümlenir ve konum içerir. Temiz bir prebuild sonrasında ios/Podfile.lock dosyasında ne OneSignalComplete ne de OneSignalLocation göründüğünü doğrulayın.
- app.config.ts
- app.json
onesignal-expo-plugin 2.6.0’dan itibaren, eklenti props’larında tam TypeScript desteği ve otomatik tamamlama için withOneSignal’i içe aktarabilirsiniz.3. SDK’yı başlatın
Expo yapınıza bağlı olarak (Geleneksel Uygulama girişi veya Expo Router), bu seçenekleri takip ederek OneSignal’i başlatın.- Traditional App Entry
- Expo Router
App.tsx veya App.js dosyanızda OneSignal’i sağlanan yöntemlerle başlatın.YOUR_APP_ID’yi OneSignal dashboard’unuzda Settings > Keys & IDs altında bulunan OneSignal Uygulama ID’nizle değiştirin.useCallback ile yeniden kullanılabilir dinleyiciler
Dinleyicinizin props veya state’e erişmesi gerekiyorsa, useEffect dışında useCallback ile tanımlayarak ekleme ve kaldırma için aynı referansın kullanılmasını sağlayın. addEventListener ve removeEventListener’a farklı fonksiyon referansları iletmek hiçbir etki yapmaz — dinleyici kaldırılmaz ve bileşen unmount edildikten sonra bile tetiklenebilir.
Android kurulumu
OneSignal uygulamanızın Firebase kimlik bilgileriniz kullanılarak Android platformu için yapılandırıldığından emin olun. Uygulamanızın markasıyla eşleşmesi için bildirim simgelerinizi ayarlayın. Küçük simge gereklidir. Bu adımı atlarsanız, bildirimler varsayılan bir çan simgesi gösterir. Android için derleyin Bu noktada, uygulamanızı fiziksel bir Android cihazda veya emülatörde sorunsuz bir şekilde derleyebilmeli ve çalıştırabilmelisiniz.- Uygulanabilirse, iOS kurulumu ile devam edin.
- Veya OneSignal SDK entegrasyonunu test etme bölümüne atlayın.
iOS kurulumu
OneSignal uygulamanızın p8 Token (Önerilir) veya p12 Sertifikası kullanarak iOS platformu için yapılandırıldığından emin olun.iOS için build
Artık uygulamanızı gerçek bir iOS cihazında veya iOS simülatöründe (16.2+) oluşturabilmeli ve çalıştırabilmelisiniz.Yaygın iOS build hataları
Cycle Inside... building could produce unreliable results.
Cycle Inside... building could produce unreliable results.
.xcworkspaceklasörünüzü Xcode’da açın ve your app target > Build Phases’e gidin.- “Embed Foundation Extensions” veya “Embed App Extensions” adlı bir aşamanız olmalıdır.
- Bu build aşamasını “Run Script“‘in üzerine sürükleyin ve taşıyın.
- Uygulamanızı oluşturun ve çalıştırın. Hata çözülmüş olmalıdır.

Xcode'da Build Phases'in doğru sırası.

Copy only when installing işaretini kaldırın.
PBXGroup Error
PBXGroup Error
PBXGroup attempted to initialize an object with unknown ISA PBXFileSystemSynchronizedRootGroup from attributes: {"isa"=>"...", "exceptions"=>["//", "..."], "explicitFileTypes"=>{}, "explicitFolders"=>[], "path"=>"OneSignalNotificationServiceExtension", "sourceTree"=>"<group>"}- Hatadaki “path” altında listelenen klasörü bulun
- Xcode proje kenar çubuğunda, klasöre sağ tıklayın
- Convert to Group’u seçin

PBXGroup için yol hatası.

Klasörü gruba dönüştürün.
OneSignal SDK entegrasyonunu test etme
Bu kılavuz, push bildirimleri, abonelik kaydı ve uygulama içi mesajlaşma test ederek OneSignal SDK entegrasyonunuzun düzgün çalıştığını doğrulamanıza yardımcı olur.Mobil abonelikleri kontrol edin
Uygulamanızı test cihazında başlatın.
requestPermission metodunu eklediyseniz, yerel push izin istemi otomatik olarak görünmelidir.
iOS ve Android push izin istemleri
OneSignal panonuzu kontrol edin
- Kitle > Abonelikler’e gidin.
- “Never Subscribed” durumuna sahip yeni bir girdi görmelisiniz.

'Never Subscribed' durumuna sahip aboneliği gösteren pano
Uygulamaya dönün ve istemde İzin Ver'e dokunun.
OneSignal panosu Abonelik sayfasını yenileyin.

'Subscribed' durumuna sahip aboneliği gösteren pano
Test aboneliklerini ayarlayın
Test abonelikleri, bir mesaj göndermeden önce push bildirimi test etmek için yararlıdır.Test Aboneliklerine ekleyin.

Test Aboneliklerine cihaz ekleme
Aboneliğinizi adlandırın.
Test kullanıcıları segmenti oluşturun.
Segmenti adlandırın.
Test Users olarak adlandırın (ad önemlidir çünkü daha sonra kullanılacaktır).Test Users filtresini ekleyin ve Create Segment'e tıklayın.

Test Users filtresi ile 'Test Users' segmenti oluşturma
API aracılığıyla test push gönderin
Uygulama API Anahtarınızı ve Uygulama ID'nizi alın.
Sağlanan kodu güncelleyin.
YOUR_APP_API_KEY ve YOUR_APP_ID değerlerini gerçek anahtarlarınızla değiştirin. Bu kod, daha önce oluşturduğumuz Test Users segmentini kullanır.Kodu çalıştırın.
Görselleri ve onaylanmış teslimatı kontrol edin.

iOS ve Android'de görsel içeren push bildirimi
Onaylanmış teslimatı kontrol edin.
Uygulama içi mesaj gönderin
Uygulama içi mesajlar, kullanıcılar uygulamanızı kullanırken onlarla iletişim kurmanızı sağlar.Cihazda uygulamanızı kapatın veya arka plana alın.
Uygulama içi mesaj oluşturun.
- OneSignal panonuzda Mesajlar > Uygulama İçi > Yeni Uygulama İçi’ye gidin.
- Hoş Geldiniz mesajını bulun ve seçin.
- Kitlenizi daha önce kullandığımız Test Users segmenti olarak ayarlayın.

Uygulama içi mesajla 'Test Users' segmentini hedefleme
İsterseniz mesaj içeriğini özelleştirin.

Uygulama içi Hoş Geldiniz mesajının örnek özelleştirmesi
Tetikleyiciyi 'Uygulama açıldığında' olarak ayarlayın.
Sıklığı planlayın.

Uygulama içi mesaj zamanlama seçenekleri
Mesajı yayınlayın.
Uygulamayı açın ve mesajı görün.

Cihazlarda gösterilen Hoş Geldiniz uygulama içi mesajı
- Abonelikleri toplama, Test abonelikleri ayarlama ve Segmentler oluşturma.
- Segmentleri ve Mesaj oluşturma API’mizi kullanarak görseller ve Onaylanmış Teslimat ile Push gönderme.
- Uygulama içi mesajlar gönderme.
Kullanıcı tanımlama
Daha önce, mobil Abonelikler oluşturmayı gösterdik. Şimdi OneSignal SDK’yı kullanarak Kullanıcıları tüm abonelikleri (push, e-posta ve SMS dahil) üzerinden tanımlamaya genişleteceğiz. Kullanıcıları platformlar arasında birleştirmenize ve etkileşime geçirmenize yardımcı olmak için Harici ID’ler, etiketler, çok kanallı abonelikler, gizlilik ve etkinlik izleme konularını ele alacağız.Harici ID ata
Arka ucunuzun kullanıcı tanımlayıcısını kullanarak kullanıcıları cihazlar, e-posta adresleri ve telefon numaraları arasında tutarlı bir şekilde tanımlamak için Harici ID kullanın. Bu, mesajlaşmanızın kanallar ve 3. taraf sistemler arasında birleşik kalmasını sağlar (özellikle Entegrasyonlar için önemlidir). Kullanıcılar uygulamanız tarafından her tanımlandığında SDK’mızınlogin metodu ile Harici ID’yi ayarlayın.
Veri etiketleri ekleyin
Etiketler, kullanıcı özelliklerini (username, role veya tercihler gibi) ve etkinlikleri (purchase_date, game_level veya kullanıcı etkileşimleri gibi) depolamak için kullanabileceğiniz anahtar-değer çiftleri dizgisi verisidir. Etiketler, daha gelişmiş kullanım durumlarına olanak tanıyan gelişmiş Mesaj Kişiselleştirme ve Segmentasyonu destekler.
Uygulamanızda etkinlikler gerçekleştikçe SDK’mızın addTag ve addTags metotları ile etiketleri ayarlayın.
Bu örnekte, kullanıcı current_level adlı etiket tarafından 6 değerine ayarlanarak tanımlanabilen 6. seviyeye ulaştı.

OneSignal'da "current_level" adlı etiketi "6" olarak ayarlanmış bir kullanıcı profili

4'ten büyük ve 10'dan küçük current_level değerine sahip kullanıcıları hedefleyen bir segmenti gösteren segment editörü

Kişiselleştirilmiş mesajla Seviye 5-10 segmentini hedefleyen bir push bildirimini gösteren ekran görüntüsü

Kişiselleştirilmiş içerikle iOS ve Android cihazda alınan push bildirimi
E-posta ve/veya SMS abonelikleri ekleyin
Daha önce SDK’mızın push ve uygulama içi mesajlar göndermek için mobil abonelikler oluşturduğunu gördük. İlgili abonelikleri oluşturarak kullanıcılara e-posta ve SMS kanalları aracılığıyla da ulaşabilirsiniz.- E-posta abonelikleri oluşturmak için
addEmailmetodunu kullanın. - SMS abonelikleri oluşturmak için
addSmsmetodunu kullanın.

Harici ID tarafından birleştirilmiş push, e-posta ve SMS aboneliklerine sahip bir kullanıcı profili
- E-posta veya SMS abonelikleri eklemeden önce açık onay alın.
- Kullanıcılara her iletişim kanalının faydalarını açıklayın.
- Kullanıcıların hangi kanalları tercih ettiklerini seçebilmeleri için kanal tercihleri sağlayın.
Gizlilik ve kullanıcı onayı
OneSignal’ın kullanıcı verilerini ne zaman topladığını kontrol etmek için SDK’nın onay kapısı metotlarını kullanın:setConsentRequired(true): Onay verilene kadar veri toplamayı engeller.setConsentGiven(true): Onay verildiğinde veri toplamayı etkinleştirir.
Push izinleri için istem
Uygulama açıldığında hemenrequestPermission() çağırmak yerine, daha stratejik bir yaklaşım benimseyin. İzin istemeden önce push bildirimlerinin değerini açıklamak için bir uygulama içi mesaj kullanın.
En iyi uygulamalar ve uygulama ayrıntıları için Push izinleri için istem kılavuzumuza bakın.
Push, kullanıcı ve uygulama içi etkinlikleri dinleyin
Kullanıcı eylemlerine ve durum değişikliklerine tepki vermek için SDK dinleyicilerini kullanın. SDK, bağlanabileceğiniz birkaç etkinlik dinleyicisi sağlar. Daha fazla ayrıntı için SDK referans kılavuzumuza bakın.Push bildirimi etkinlikleri
addClickListener(): Bir bildirimin ne zaman dokunulduğunu tespit edin. Derin Bağlantı için yararlıdır.addForegroundLifecycleListener(): Bildirimlerin ön planda nasıl davrandığını kontrol edin.
Kullanıcı durumu değişiklikleri
- Kullanıcı durumu için
addObserver(): Harici ID’nin ne zaman ayarlandığını tespit edin. addPermissionObserver(): Kullanıcının yerel push izin istemi ile belirli etkileşimini izleyin.- Push aboneliği için
addObserver(): Push abonelik durumunun ne zaman değiştiğini izleyin.
Uygulama içi mesaj etkinlikleri
addClickListener(): Uygulama içi tıklama eylemlerini işleyin. Derin bağlantı veya etkinlik izleme için idealdir.addLifecycleListener(): Uygulama içi mesajların tam yaşam döngüsünü izleyin (gösterildi, tıklandı, reddedildi, vb.).
Gelişmiş kurulum ve yetenekler
Entegrasyonunuzu geliştirmek için daha fazla yeteneği keşfedin:- 🔁 Başka bir servisten OneSignal’a geçiş
- 🌍 Konum izleme
- 🔗 Derin Bağlantı
- 🔌 Entegrasyonlar
- 🧩 Mobil Servis Uzantıları
- 🛎️ Eylem düğmeleri
- 🌐 Çok dilli mesajlaşma
- 🛡️ Kimlik Doğrulama
- 📊 Özel Sonuçlar
- 📲 Canlı Aktiviteler
Mobil SDK kurulumu ve referansı
Mobil push kurulumu kılavuzunu inceleyerek tüm temel özellikleri etkinleştirdiğinizden emin olun. Mevcut metotlar ve yapılandırma seçenekleri hakkında tam ayrıntılar için Mobil SDK referansı’nı ziyaret edin.Gizlilik ve kullanıcı onayı
Uygulamanız veri toplamadan önce kullanıcı onayı gerektiriyorsa (ör. GDPR uyumluluğu için), onay verilene kadar OneSignal’ın veri toplamasını geciktirebilirsiniz.setConsentRequired metodunu initialize çağrısından önce çağırın.
setConsentGiven(true) çağırın. Daha fazla ayrıntı için Kişisel Verilerin İşlenmesi sayfasına bakın.Sorun giderme
support@onesignal.com adresine e-posta gönderinLütfen şunları ekleyin:- Yaşadığınız sorunun ayrıntıları ve varsa yeniden üretme adımları
- OneSignal Uygulama Kimliğiniz
- Varsa Harici ID veya Abonelik ID
- Varsa OneSignal Panosunda test ettiğiniz mesajın URL’si
- İlgili günlükler veya hata mesajları