FCM ile çalışmaya başlamak için en basit kullanım alanını oluşturun: Uygulama cihazda arka plandayken Bildirim oluşturucu'dan bir geliştirme cihazına test bildirimi mesajı gönderme. Bu sayfada, kurulumdan doğrulamaya kadar bu hedefe ulaşmak için gereken tüm adımlar listelenir. FCM için bir Apple istemci uygulaması kurduysanız daha önce tamamladığınız adımlar da bu listede yer alabilir.
Firebase'i Apple projenize ekleme
Bu bölümde, uygulamanız için diğer Firebase özelliklerini etkinleştirdiyseniz tamamlamış olabileceğiniz görevler ele alınmaktadır. Özellikle FCM için APNs kimlik doğrulama anahtarınızı yüklemeniz ve uzaktan bildirimlere kaydolmanız gerekir.
Ön koşullar
Aşağıdakileri yükleyin:
- Xcode 16.2 veya sonraki sürümler
Projenizin aşağıdaki koşulları karşıladığından emin olun:
- Projeniz aşağıdaki platform sürümlerini veya daha yenilerini hedeflemelidir:
- iOS 13
- macOS 10.15
- tvOS 13
- watchOS 7
- Projeniz aşağıdaki platform sürümlerini veya daha yenilerini hedeflemelidir:
Uygulamanızı çalıştırmak için fiziksel bir Apple cihazı ayarlayın ve şu görevleri tamamlayın:
- Apple geliştirici hesabınız için Apple Anında Bildirim Kimlik Doğrulama Anahtarı edinin.
- XCode'da App > Capabilities altında push bildirimlerini etkinleştirin.
- Google Hesabınızı kullanarak Firebase'de oturum açın.
Henüz bir Xcode projeniz yoksa ve yalnızca bir Firebase ürününü denemek istiyorsanız hızlı başlangıç örneklerimizden birini indirebilirsiniz.
Firebase projesi oluşturma
Firebase'i Apple uygulamanıza ekleyebilmeniz için öncelikle uygulamanıza bağlanacak bir Firebase projesi oluşturmanız gerekir. Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase projelerini anlama başlıklı makaleyi inceleyin.
Uygulamanızı Firebase'e kaydetme
Firebase'i Apple uygulamanızda kullanmak için uygulamanızı Firebase projenize kaydetmeniz gerekir. Uygulamanızı kaydetme işlemi genellikle uygulamanızı projenize "ekleme" olarak adlandırılır.
Firebase konsoluna gidin.
Kurulum iş akışını başlatmak için projeye genel bakış sayfasının ortasındaki iOS+ simgesini tıklayın.
Firebase projenize zaten bir uygulama eklediyseniz platform seçeneklerini görüntülemek için Uygulama ekle'yi tıklayın.
Uygulamanızın paket kimliğini paket kimliği alanına girin.
(İsteğe bağlı) Diğer uygulama bilgilerini girin: Uygulama takma adı ve App Store kimliği.
Uygulamayı kaydet'i tıklayın.
Firebase yapılandırma dosyası ekleme
Uygulamanızın Firebase yapılandırma dosyasını (
GoogleService-Info.plist
) almak için GoogleService-Info.plist'i indir'i tıklayın.Yapılandırma dosyanızı Xcode projenizin kök dizinine taşıyın. İstenirse yapılandırma dosyasını tüm hedeflere eklemeyi seçin.
Projenizde birden fazla paket kimliği varsa her paketi Firebase konsolunda kayıtlı bir uygulamayla ilişkilendirmeniz gerekir. Böylece her uygulamanın kendi GoogleService-Info.plist
dosyası olabilir.
Uygulamanıza Firebase SDK'larını ekleme
Firebase bağımlılarını yükleyip yönetmek için Swift Package Manager'ı kullanın.
- Xcode'da, uygulamanız açıkken File > Add Packages (Dosya > Paket Ekle) seçeneğine gidin.
- İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
- Firebase Cloud Messaging kitaplığını seçin.
-ObjC
işaretini hedefinizin derleme ayarlarının Other Linker Flags (Diğer Bağlayıcı İşaretleri) bölümüne ekleyin.- Firebase Cloud Messaging ile en iyi deneyimi elde etmek için Firebase projenizde Google Analytics'ı etkinleştirmenizi ve uygulamanıza Google Analytics için Firebase SDK'sını eklemenizi öneririz. IDFA toplama özelliği olmayan veya IDFA toplama özelliği olan kitaplığı seçebilirsiniz. Firebase SDK'sında Google Analytics için modüllerin en son düzenlenmesi ile ilgili SSS bölümümüzü inceleyin.
- İşlem tamamlandığında Xcode otomatik olarak arka planda bağımlılarınızı çözümlemeye ve indirmeye başlar.
https://github.com/firebase/firebase-ios-sdk.git
APNs kimlik doğrulama anahtarınızı yükleyin
APNs kimlik doğrulama anahtarınızı Firebase'e yükleyin. Henüz bir APNs kimlik doğrulama anahtarınız yoksa Apple Developer Member Center'da bir tane oluşturduğunuzdan emin olun.
-
Firebase konsolundaki projenizde dişli simgesini, Proje Ayarları'nı ve ardından Cloud Messaging sekmesini seçin.
-
iOS uygulama yapılandırması bölümündeki APNs kimlik doğrulama anahtarı altında, Yükle düğmesini tıklayın.
-
Anahtarınızı kaydettiğiniz konuma gidin, anahtarınızı seçin ve Aç'ı tıklayın. Anahtarın anahtar kimliğini ekleyin ( Apple Developer Member Center'da bulunur) ve Yükle'yi tıklayın.
Uygulamanızda Firebase'i başlatma
Uygulamanıza Firebase başlatma kodu eklemeniz gerekir. Firebase modülünü içe aktarın ve gösterildiği gibi paylaşılan bir örnek yapılandırın:
FirebaseCore
modülünüUIApplicationDelegate
dosyanıza ve uygulama temsilcinizin kullandığı diğer Firebase modüllerine aktarın. Örneğin, Cloud Firestore ve Authentication kullanmak için:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Uygulama temsilcinizin
application(_:didFinishLaunchingWithOptions:)
yönteminde paylaşılan birFirebaseApp
örneği yapılandırın:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturmanız ve bunu
App
yapınızdaUIApplicationDelegateAdaptor
veyaNSApplicationDelegateAdaptor
aracılığıyla eklemeniz gerekir. Ayrıca uygulama temsilcisi karıştırmayı da devre dışı bırakmanız gerekir. Daha fazla bilgi için SwiftUI talimatlarına bakın.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Uzak bildirimlere kaydolma
Uygulama akışınızda başlangıçta veya istediğiniz noktada uygulamanızı uzaktan bildirimler için kaydedin. Aşağıdaki gibiregisterForRemoteNotifications
çağrısı yapın:
Swift
UNUserNotificationCenter.current().delegate = self let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: { _, _ in } ) application.registerForRemoteNotifications()
Objective-C
[UNUserNotificationCenter currentNotificationCenter].delegate = self; UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge; [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) { // ... }]; [application registerForRemoteNotifications];
Kayıt jetonuna erişme
Belirli bir cihaza mesaj göndermek için cihazın kayıt jetonunu bilmeniz gerekir. Bu eğitimi tamamlamak için jetonu Bildirim oluşturucu'daki bir alana girmeniz gerektiğinden, jetonu aldıktan sonra kopyaladığınızdan veya güvenli bir şekilde sakladığınızdan emin olun.
Varsayılan olarak, FCM SDK, uygulama başlatıldığında istemci uygulaması örneği için bir kayıt jetonu oluşturur. APNs cihaz jetonuna benzer şekilde, bu jeton uygulamanızın belirli bir örneğine hedeflenmiş bildirimler göndermenize olanak tanır.
Apple platformları genellikle uygulama başlatıldığında APNs cihaz jetonu sağladığı gibi FCM de FIRMessagingDelegate
'nın messaging:didReceiveRegistrationToken:
yöntemiyle kayıt jetonu sağlar.
FCM SDK, uygulamanın ilk başlatılması sırasında ve jeton güncellendiğinde ya da geçersiz kılındığında yeni veya mevcut bir jeton alır.
Her durumda, FCM SDK, geçerli bir jetonla messaging:didReceiveRegistrationToken:
çağrısı yapar.
Kayıt jetonu şu durumlarda değişebilir:
- Uygulama yeni bir cihaza geri yüklendi
- Kullanıcı uygulamayı kaldırır/yeniden yüklerse
- Kullanıcı, uygulama verilerini temizlerse
Mesajlaşma temsilcisini ayarlama
Kayıt jetonları almak için mesajlaşma temsilcisi protokolünü uygulayın ve [FIRApp configure]
çağrıldıktan sonra FIRMessaging
adlı kullanıcının delegate
özelliğini ayarlayın.
Örneğin, uygulama temsilciniz mesajlaşma temsilcisi protokolüne uygunsa application:didFinishLaunchingWithOptions:
üzerindeki temsilciyi kendisi olarak ayarlayabilirsiniz.
Swift
Messaging.messaging().delegate = self
Objective-C
[FIRMessaging messaging].delegate = self;
Mevcut kayıt jetonunu getirme
Kayıt jetonları messaging:didReceiveRegistrationToken:
yöntemiyle teslim edilir. Bu yöntem genellikle uygulama her başlatıldığında bir kez kayıt jetonuyla birlikte çağrılır. Bu yöntem çağrıldığında şunları yapmak için ideal zamandır:
- Kayıt jetonu yeni ise uygulama sunucunuza gönderin.
- Kayıt jetonunu konulara abone edin. Bu yalnızca yeni abonelikler veya kullanıcının uygulamayı yeniden yüklediği durumlar için gereklidir.
Jetonu doğrudan token(completion:) kullanarak alabilirsiniz. Jeton alma işlemi herhangi bir şekilde başarısız olursa boş olmayan bir hata sağlanır.
Swift
Messaging.messaging().token { token, error in if let error = error { print("Error fetching FCM registration token: \(error)") } else if let token = token { print("FCM registration token: \(token)") self.fcmRegTokenMessage.text = "Remote FCM registration token: \(token)" } }
Objective-C
[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) { if (error != nil) { NSLog(@"Error getting FCM registration token: %@", error); } else { NSLog(@"FCM registration token: %@", token); self.fcmRegTokenMessage.text = token; } }];
Jetonu saklamak yerine istediğiniz zaman erişmek için bu yöntemi kullanabilirsiniz.
Jeton yenilemeyi izleme
Jeton her güncellendiğinde bildirim almak için mesajlaşma temsilcisi protokolüne uygun bir temsilci sağlayın. Aşağıdaki örnekte temsilci kaydedilip uygun temsilci yöntemi ekleniyor:
Swift
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) { print("Firebase registration token: \(String(describing: fcmToken))") let dataDict: [String: String] = ["token": fcmToken ?? ""] NotificationCenter.default.post( name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict ) // TODO: If necessary send token to application server. // Note: This callback is fired at each app startup and whenever a new token is generated. }
Objective-C
- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken { NSLog(@"FCM registration token: %@", fcmToken); // Notify about received token. NSDictionary *dataDict = [NSDictionary dictionaryWithObject:fcmToken forKey:@"token"]; [[NSNotificationCenter defaultCenter] postNotificationName: @"FCMToken" object:nil userInfo:dataDict]; // TODO: If necessary send token to application server. // Note: This callback is fired at each app startup and whenever a new token is generated. }
Alternatif olarak, bir temsilci yöntemi sağlamak yerine NSNotification
adlı kFIRMessagingRegistrationTokenRefreshNotification
öğesini dinleyebilirsiniz. Jeton özelliği her zaman mevcut jeton değerine sahiptir.
Bildirim mesajı gönderme
Uygulamayı hedef cihaza yükleyip çalıştırın. Apple cihazlarda, uzaktan bildirim alma izni isteğini kabul etmeniz gerekir.
Uygulamanın cihazda arka planda çalıştığından emin olun.
Firebase konsolunda Mesajlaşma sayfasını açın.
Bu ilk mesajınızsa İlk kampanyanızı oluşturun'u seçin.
- Firebase Notification mesajları'nı ve Oluştur'u seçin.
Aksi takdirde, Kampanyalar sekmesinde Yeni kampanya'yı ve ardından Bildirimler'i seçin.
Mesaj metnini girin. Diğer tüm alanlar isteğe bağlıdır.
Sağ bölmede Test mesajı gönder'i seçin.
Add an FCM registration token (FCM kayıt jetonu ekle) etiketli alana, bu kılavuzun önceki bir bölümünde aldığınız kayıt jetonunu girin.
Test et'i seçin.
Test'i seçtikten sonra, hedef istemci cihaz (uygulama arka planda çalışırken) bildirimi almalıdır.
Uygulamanıza mesaj teslimiyle ilgili analizler için FCM raporlama kontrol paneline bakın. Bu kontrol paneli, Apple ve Android cihazlarda gönderilen ve açılan mesajların sayısını kaydeder. Ayrıca Android uygulamaları için "gösterim" (kullanıcılar tarafından görülen bildirimler) verilerini de içerir.
Sonraki adımlar
Bildirim mesajlarının ötesine geçip uygulamanıza başka ve daha gelişmiş davranışlar eklemek için aşağıdaki kaynaklara göz atın: