Arka plandaki bir Apple uygulamasına test mesajı gönder

FCM ile çalışmaya başlamak için en basit kullanım alanını oluşturun: Uygulama cihazda arka plandayken Bildirim derleyici'den bir geliştirme cihazına test bildirim mesajı gönderme. Bu sayfada, kurulumdan doğrulamaya kadar bu hedefe ulaşmak için gereken tüm adımlar listelenmiştir. FCM için Apple istemci uygulaması oluşturduysanız daha önce tamamladığınız adımları da içerebilir.

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 15.2 veya sonraki sürümler
  • Projenizin şu gereklilikleri karşıladığından emin olun:

    • Projeniz şu platform sürümlerini veya daha yeni sürümleri hedeflemelidir:
      • iOS 13
      • macOS 10.15
      • tvOS 13
      • watchOS 7
  • Uygulamanızı çalıştırmak için fiziksel bir Apple cihaz oluşturun ve aşağıdaki görevleri tamamlayın:

    • Apple Geliştirici hesabınız için bir Apple Anında Bildirim Kimlik Doğrulama Anahtarı edinin.
    • XCode'ta Uygulama > Özellikler bölümünde Push bildirimlerini etkinleştirin.

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 eklemeden önce, 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şlemine genellikle uygulamanızı projenize "ekleme" denir.

  1. Firebase konsoluna gidin.

  2. Kurulum iş akışını başlatmak için projeye genel bakış sayfasının ortasından iOS+ simgesini tıklayın.

    Firebase projenize daha önce bir uygulama eklediyseniz platform seçeneklerini görüntülemek için Uygulama ekle'yi tıklayın.

  3. Uygulamanızın paket kimliğini paket kimliği alanına girin.

  4. (İsteğe bağlı) Diğer uygulama bilgilerini girin: Uygulama takma adı ve App Store kimliği.

  5. Uygulamayı kaydet'i tıklayın.

Firebase yapılandırma dosyası ekleme

  1. Firebase Apple platformları yapılandırma dosyanızı (GoogleService-Info.plist) almak için GoogleService-Info.plist dosyasını indir'i tıklayın.

  2. 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 konsolunda kayıtlı bir uygulamayla ilişkilendirmeniz gerekir.

Firebase SDK'larını uygulamanıza ekleyin

Firebase bağımlılıklarını yükleyip yönetmek için Swift Package Manager'ı kullanın.

Firebase SDK'larını Apple projenize eklemenin farklı yolları (ör. doğrudan çerçeveleri içe aktarma ve CocoaPods kullanma) hakkında bilgi edinmek için
  1. Xcode'da, uygulamanız açıkken Dosya > Paket Ekle'ye gidin.
  2. İstendiğinde Firebase Apple platformları SDK deposunu ekleyin:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Firebase Cloud Messaging kitaplığını seçin.
  5. -ObjC işaretini, hedefinizin derleme ayarlarının Diğer Bağlantı Oluşturucu İşaretleri bölümüne ekleyin.
  6. Firebase Cloud Messaging ile en iyi deneyimi yaşamak 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 kitaplığı seçebilirsiniz.
  7. İşlem tamamlandığında Xcode, arka planda bağımlılıklarınızı otomatik olarak çözümlemeye ve indirmeye başlar.

APNs kimlik doğrulama anahtarınızı yükleme

APNs kimlik doğrulama anahtarınızı Firebase'e yükleyin. Halihazırda bir APNs kimlik doğrulama anahtarınız yoksa Apple Developer Member Center'da bir tane oluşturduğunuzdan emin olun.

  1. Firebase Konsolu'ndaki projenizde dişli simgesini, ardından Proje Ayarları'nı ve Cloud Mesajlaşma sekmesini seçin.

  2. iOS uygulama yapılandırması bölümündeki APNs kimlik doğrulama anahtarı'nda Yükle düğmesini tıklayın.

  3. Anahtarınızı kaydettiğiniz konuma gidin, anahtarı seçin ve 'ı tıklayın. Anahtarın anahtar kimliğini ekleyin ( Apple Developer Üye Merkezi'nde bulunur) ve Yükle'yi tıklayın.

Uygulamanızda Firebase'i başlatma

Uygulamanıza Firebase ilk kullanıma hazırlama kodu eklemeniz gerekir. Firebase modülünü içe aktarın ve gösterildiği gibi paylaşılan bir örnek yapılandırın:

  1. FirebaseCore modülünü ve uygulama temsilcinizin kullandığı diğer tüm Firebase modüllerini UIApplicationDelegate dosyanıza 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;
    // ...
          
  2. Uygulama temsilcinizin application(_:didFinishLaunchingWithOptions:) yönteminde bir FirebaseApp shared instance 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];
  3. SwiftUI kullanıyorsanız bir uygulama temsilcisi oluşturmanız ve UIApplicationDelegateAdaptor veya NSApplicationDelegateAdaptor aracılığıyla App yapınıza eklemeniz gerekir. Ayrıca uygulama temsilcisi değiştirme işlemini de devre dışı bırakmanız gerekir. Daha fazla bilgi için SwiftUI talimatlarına bakın.

    Hızlı Kullanıcı Arayüzü

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          

Uzaktan bildirimlere kaydol

Uygulamanızı, başlangıçta veya uygulama akışınızda istediğiniz noktada uzaktan bildirimlere kaydedin. registerForRemoteNotifications'ü aşağıdaki gibi çağırı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 o cihazın kayıt jetonunu bilmeniz gerekir. Bu eğitimde, 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.

FCM SDK'sı, varsayılan olarak uygulama başlatılırken istemci uygulama örneği için bir kayıt jetonu oluşturur. APNs cihaz jetonuna benzer şekilde, bu jeton da uygulamanızın belirli bir örneğine hedeflenmiş bildirimler göndermenize olanak tanır.

Apple platformlarının genellikle uygulama başlatılırken APNs cihaz jetonu sağladığı gibi, FCM de FIRMessagingDelegate'nin messaging:didReceiveRegistrationToken: yöntemi aracılığıyla kayıt jetonu sağlar. FCM SDK'sı, uygulama ilk kez başlatılırken ve jeton güncellendiğinde veya geçersiz olduğunda yeni veya mevcut bir jeton alır. FCM SDK'sı her durumda 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ğinde
  • Kullanıcı uygulamayı kaldırır/yeniden yükler
  • Kullanıcı uygulama verilerini siler.

Mesajlaşma temsilcisini ayarlama

Kayıt jetonları almak için mesajlaşma temsilcisi protokolünü uygulayın ve [FIRApp configure]'yi çağırdıktan sonra FIRMessaging'nin delegate mülkünü ayarlayın. Örneğin, uygulama temsilciniz mesajlaşma temsilcisi protokolüne uygunsa application:didFinishLaunchingWithOptions: üzerinde temsilciyi kendisine ayarlayabilirsiniz.

Swift

Messaging.messaging().delegate = self

Objective-C

[FIRMessaging messaging].delegate = self;

Mevcut kayıt jetonunu getirme

Kayıt jetonları messaging:didReceiveRegistrationToken: yöntemiyle gönderilir. Bu yöntem genellikle kayıt jetonuyla başlayan her uygulama için 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.
  • Kayıt jetonunu konulara abone edin. Bu işlem yalnızca yeni abonelikler veya kullanıcının uygulamayı yeniden yüklediği durumlar için gereklidir.

token(completion:) parametresini kullanarak jetonu doğrudan alabilirsiniz. Jeton herhangi bir şekilde alınamadıysa boş olmayan bir hata verilir.

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 erişmek için dilediğiniz zaman 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 kaydedilir ve uygun temsilci yöntemi eklenir:

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, yetki verme yöntemi sağlamak yerine kFIRMessagingRegistrationTokenRefreshNotification adlı bir NSNotification için dinleyebilirsiniz. Jeton mülkü her zaman geçerli jeton değerine sahiptir.

Bildirim mesajı gönderme

  1. Uygulamayı hedef cihaza yükleyip çalıştırın. Apple cihazlarda uzaktan bildirim almak için izin isteğini kabul etmeniz gerekir.

  2. Uygulamanın cihazda arka planda bulunduğundan emin olun.

  3. Firebase konsolunda Mesajlaşma sayfasını açın.

  4. Bu ilk mesajınızsa İlk kampanyanızı oluşturun'u seçin.

    1. Firebase bildirim mesajları'nı ve Oluştur'u seçin.
  5. Aksi takdirde, Kampanyalar sekmesinde Yeni kampanya'yı ve ardından Bildirimler'i seçin.

  6. Mesaj metnini girin. Diğer tüm alanlar isteğe bağlıdır.

  7. Sağ bölmeden Test mesajı gönder'i seçin.

  8. FCM kayıt jetonu ekle etiketli alana, bu kılavuzun önceki bir bölümünde edindiğiniz kayıt jetonunu girin.

  9. Test et'i seçin.

Test et'i seçtikten sonra, hedeflenen istemci cihazın (uygulama arka planda çalışırken) bildirimi alması gerekir.

Uygulamanıza mesaj yayınlama hakkında bilgi edinmek için FCMraporlama kontrol paneline bakın. Bu panelde, Apple ve Android cihazlarda gönderilen ve açılan mesajların sayısı ile Android uygulamaları için "gösterim" (kullanıcı tarafından görüntülenen bildirimler) verilerinin yanı sıra diğer bilgiler yer alır.

Sonraki adımlar

Bildirim mesajlarının ötesine geçip uygulamanıza daha gelişmiş davranışlar eklemek için aşağıdaki konulara göz atın: