FCM'yi kullanmaya başlamak için en basit kullanım senaryosunu oluşturun: uygulama cihazın arka planındayken Bildirimler oluşturucusundan bir geliştirme cihazına bir test bildirimi mesajı göndermek. Bu sayfa, kurulumdan doğrulamaya kadar bunu başarmaya yönelik tüm adımları listeler; FCM için bir Apple istemci uygulaması ayarladıysanız daha önce tamamladığınız adımları kapsayabilir.
Firebase'i Apple projenize ekleyin
Bu bölüm, uygulamanız için diğer Firebase özelliklerini zaten etkinleştirdiyseniz tamamlamış olabileceğiniz görevleri kapsar. Özellikle FCM için APN kimlik doğrulama anahtarınızı yüklemeniz ve uzaktan bildirimlere kaydolmanız gerekir.
Önkoşullar
Aşağıdakileri yükleyin:
- Xcode 14.1 veya üzeri
Projenizin şu gereksinimleri karşıladığından emin olun:
- Projeniz şu platform sürümlerini veya sonraki sürümlerini hedeflemelidir:
- iOS 11
- macOS 10.13
- tvOS 12
- watchOS 6
- Projeniz şu platform sürümlerini veya sonraki sürümlerini hedeflemelidir:
Uygulamanızı çalıştırmak için fiziksel bir Apple cihazı kurun ve şu görevleri tamamlayın:
- Apple Geliştirici hesabınız için bir Apple Anında Bildirim Kimlik Doğrulama Anahtarı edinin.
- Uygulama > Yetenekler altında XCode'da Anında Bildirimleri 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 önce uygulamanıza bağlanacak bir Firebase projesi oluşturmanız gerekir. Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlayın sayfasını ziyaret edin.
Uygulamanızı Firebase'e kaydedin
Firebase'i Apple uygulamanızda kullanmak için uygulamanızı Firebase projenize kaydetmeniz gerekir. Uygulamanızı kaydetmeye genellikle uygulamanızı projenize "eklemek" denir.
Firebase konsoluna gidin.
Kurulum iş akışını başlatmak için projeye genel bakış sayfasının ortasındaki iOS+ simgesine tıklayın.
Firebase projenize zaten bir uygulama eklediyseniz platform seçeneklerini görüntülemek için Uygulama ekle'yi tıklayın.
Paket kimliği alanına uygulamanızın paket kimliğini girin.
Paket kimliği, Apple'ın ekosistemindeki bir uygulamayı benzersiz şekilde tanımlar.
Paket kimliğinizi bulun: Projenizi Xcode'da açın, proje gezgininde üst düzey uygulamayı seçin ve ardından Genel sekmesini seçin.
Paket Tanımlayıcı alanının değeri paket kimliğidir (örneğin,
com.yourcompany.yourproject
).Paket kimliği değerinin büyük/küçük harfe duyarlı olduğunu ve Firebase projenize kaydedildikten sonra bu Firebase uygulaması için değiştirilemeyeceğini unutmayın.
(İsteğe bağlı) Diğer uygulama bilgilerini girin: Uygulama takma adı ve App Store Kimliği .
Uygulama takma adı : Firebase konsolunda yalnızca sizin görebileceğiniz dahili, kullanışlı bir tanımlayıcı
App Store Kimliği : Firebase Dynamic Links tarafından kullanıcıları App Store sayfanıza yönlendirmek için ve Google Analytics tarafından dönüşüm etkinliklerini Google Ads'e aktarmak için kullanılır. Uygulamanızın henüz bir App Store Kimliği yoksa kimliği daha sonra Proje ayarlarınıza ekleyebilirsiniz.
Uygulamayı kaydet'i tıklayın.
Firebase yapılandırma dosyası ekleyin
Firebase Apple platformları yapılandırma dosyanızı (
GoogleService-Info.plist
) edinmek için GoogleService-Info.plist'i İndir'i tıklayın.Firebase yapılandırma dosyası, projeniz için benzersiz ancak gizli olmayan tanımlayıcılar içerir. Bu yapılandırma dosyası hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlayın sayfasını ziyaret edin.
Firebase yapılandırma dosyanızı istediğiniz zaman tekrar indirebilirsiniz.
Yapılandırma dosyası adına
(2)
gibi ek karakterler eklenmediğinden emin olun.
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ğiniz varsa her uygulamanın kendi GoogleService-Info.plist
dosyasına sahip olabilmesi için her paket kimliğini Firebase konsolundaki kayıtlı bir uygulamayla ilişkilendirmeniz gerekir.
Firebase SDK'larını uygulamanıza ekleyin
Firebase bağımlılıklarını yüklemek ve yönetmek için Swift Paket Yöneticisini kullanın.
- Xcode'da uygulama projeniz açıkken Dosya > Paket Ekle'ye gidin.
- İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
- Firebase Cloud Messaging kitaplığını seçin.
-
-ObjC
bayrağını hedefinizin derleme ayarlarının Diğer Bağlayıcı Bayrakları bölümüne ekleyin. - Firebase Cloud Messaging ile en iyi deneyimi elde etmek için Firebase projenizde Google Analytics'i etkinleştirmenizi ve Google Analytics için Firebase SDK'sını uygulamanıza eklemenizi öneririz. IDFA koleksiyonu olmayan veya IDFA koleksiyonu olan kütüphaneyi seçebilirsiniz.
- Bitirdiğinizde Xcode, bağımlılıklarınızı arka planda otomatik olarak çözmeye ve indirmeye başlayacaktır.
https://github.com/firebase/firebase-ios-sdk.git
APN kimlik doğrulama anahtarınızı yükleyin
APN kimlik doğrulama anahtarınızı Firebase'e yükleyin. Henüz bir APN kimlik doğrulama anahtarınız yoksa Apple Geliştirici Üye Merkezi'nde bir tane oluşturduğunuzdan emin olun.
Firebase konsolundaki projenizin içinde dişli simgesini seçin, Proje Ayarları'nı ve ardından Bulut Mesajlaşma sekmesini seçin.
iOS uygulama yapılandırması altındaki APN kimlik doğrulama anahtarında Yükle düğmesini tıklayın.
Anahtarınızı kaydettiğiniz konuma göz atın, onu seçin ve Aç'ı tıklayın. Anahtarın anahtar kimliğini ekleyin ( Apple Geliştirici Üye Merkezi'nde mevcuttur) ve Yükle'yi tıklayın.
Uygulamanızda Firebase'i başlatın
Uygulamanıza Firebase başlatma kodunu eklemeniz gerekecek. Firebase modülünü içe aktarın ve paylaşılan bir örneği gösterildiği gibi yapılandırın:
-
FirebaseCore
modülünüUIApplicationDelegate
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 // ...
Süratli
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Amaç-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Uygulama temsilcinizin
application(_:didFinishLaunchingWithOptions:)
yöntemindeFirebaseApp
paylaşılan örneğini yapılandırın:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Süratli
// Use Firebase library to configure APIs FirebaseApp.configure()
Amaç-C
// Use Firebase library to configure APIs [FIRApp configure];
- SwiftUI kullanıyorsanız, bir uygulama temsilcisi oluşturmalı ve bunu
UIApplicationDelegateAdaptor
veyaNSApplicationDelegateAdaptor
aracılığıylaApp
yapınıza eklemelisiniz. Ayrıca uygulama temsilcisinin swizzling özelliğini de devre dışı bırakmalısınız. 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() } } } }
Uzaktan bildirimler için kaydolun
Başlangıçta veya uygulama akışınızın istediğiniz noktasında uygulamanızı uzaktan bildirimler için kaydedin.registerForRemoteNotifications
gösterildiği gibi çağırın:Süratli
UNUserNotificationCenter.current().delegate = self let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: { _, _ in } ) application.registerForRemoteNotifications()
Amaç-C
[UNUserNotificationCenter currentNotificationCenter].delegate = self; UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge; [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) { // ... }]; [application registerForRemoteNotifications];
Kayıt belirtecine erişme
Belirli bir cihaza mesaj göndermek için o cihazın kayıt jetonunu bilmeniz gerekir. Bu öğreticiyi tamamlamak için belirteci Bildirimler oluşturucusundaki bir alana girmeniz gerekeceğinden, belirteci 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 belirteci oluşturur. APN'lerin cihaz belirtecine benzer şekilde, bu belirteç, uygulamanızın herhangi bir belirli örneğine hedefli bildirimler göndermenize olanak tanır.
Apple platformlarının genellikle uygulama başlangıcında bir APNs cihaz jetonu sağlaması gibi, FCM de FIRMessagingDelegate
messaging:didReceiveRegistrationToken:
yöntemi aracılığıyla bir kayıt jetonu sağlar. FCM SDK, uygulamanın ilk başlatılması sırasında ve belirteç her güncellendiğinde veya geçersiz kılındığında yeni veya mevcut bir belirteci alır. Her durumda FCM SDK, geçerli bir messaging:didReceiveRegistrationToken:
öğesini çağırır.
Kayıt jetonu şu durumlarda değişebilir:
- Uygulama yeni bir cihaza geri yüklenir
- Kullanıcı uygulamayı kaldırır/yeniden yükler
- Kullanıcı uygulama verilerini temizler.
Mesajlaşma temsilcisini ayarlayın
Kayıt belirteçlerini almak için, mesajlaşma delege protokolünü uygulayın ve [FIRApp configure]
çağrıldıktan sonra FIRMessaging
delegate
özelliğini ayarlayın. Örneğin, uygulama temsilciniz mesajlaşma temsilcisi protokolüne uyuyorsa, application:didFinishLaunchingWithOptions:
üzerindeki temsilciyi kendisine ayarlayabilirsiniz.
Süratli
Messaging.messaging().delegate = self
Amaç-C
[FIRMessaging messaging].delegate = self;
Geçerli kayıt jetonu getiriliyor
Kayıt belirteçleri, messaging:didReceiveRegistrationToken:
yöntemi aracılığıyla teslim edilir. Bu yöntem genellikle kayıt jetonuyla uygulama başına bir kez çağrılır. Bu yöntem çağrıldığında aşağıdakiler için ideal zamandır:
- Kayıt jetonu yeniyse uygulama sunucunuza gönderin.
- Konulara kayıt belirtecine abone olun. Bu yalnızca yeni abonelikler için veya kullanıcının uygulamayı yeniden yüklediği durumlar için gereklidir.
Belirteci doğrudan token(completion:) kullanarak alabilirsiniz. Belirteç alımı herhangi bir şekilde başarısız olursa boş olmayan bir hata sağlanır.
Süratli
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)" } }
Amaç-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; } }];
Belirteci saklamak yerine erişmek için bu yöntemi istediğiniz zaman kullanabilirsiniz.
Belirteç yenilemeyi izleyin
Belirteç her güncellendiğinde bilgilendirilmek için mesajlaşma temsilci protokolüne uygun bir temsilci sağlayın. Aşağıdaki örnek, temsilciyi kaydeder ve uygun temsilci yöntemini ekler:
Süratli
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. }
Amaç-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 kFIRMessagingRegistrationTokenRefreshNotification
adlı NSNotification
dinleyebilirsiniz. token özelliği her zaman geçerli token değerine sahiptir.
Bir bildirim mesajı gönder
Uygulamayı hedef cihaza yükleyin ve çalıştırın. Apple cihazlarda uzaktan bildirim alma izni talebini kabul etmeniz gerekir.
Uygulamanın cihazın arka planında olduğundan emin olun.
Firebase konsolunda Mesajlaşma sayfasını açın.
Bu ilk mesajınızsa İlk kampanyanızı oluşturun ' u seçin.
- Firebase Bildirim 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ölmeden Test mesajı gönder'i seçin.
FCM kayıt jetonu ekle etiketli alana, bu kılavuzun önceki bölümünde edindiğiniz kayıt jetonunu girin.
Test'i seçin.
Test öğesini seçtikten sonra, hedeflenen istemci cihazın (uygulama arka plandayken) bildirimi alması gerekir.
Uygulamanıza mesaj teslimine ilişkin bilgi edinmek için Apple ve Android cihazlarda gönderilen ve açılan mesajların sayısını ve Android uygulamalarına ilişkin "gösterimler" (kullanıcılar tarafından görülen bildirimler) verilerini kaydeden FCM raporlama kontrol paneline bakın.
Sonraki adımlar
Bildirim mesajlarının ötesine geçmek ve uygulamanıza daha gelişmiş başka davranışlar eklemek için bkz.: