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

FCM'yi kullanmaya başlamak için en basit kullanım alanını oluşturun: şu adresten test bildirim mesajı: Bildirim oluşturucuyu geliştirme cihazına Uygulama cihazda arka plandayken Bu sayfada, kurulumdan doğrulama işlemine kadar bunu başarmak için atılacak tüm adımlar listelenmiştir. Bu bölüm, Apple istemci uygulaması yüklemiş olmanız tercih edebilirsiniz.

Firebase'i Apple projenize ekleyin

Bu bölümde, daha önce etkinleştirdiyseniz tamamlamış olabileceğiniz görevler ele alınmaktadır diğer Firebase özelliklerini kullanabilirsiniz. Özellikle FCM için: gerek APN kimlik doğrulama anahtarınızı yükleyin ve uzaktan bildirim almak için kaydolun.

Ön koşullar

  • Aşağıdakileri yükleyin:

    • Xcode 14.1 veya sonraki sürümler
  • Projenizin şu gereklilikleri karşıladığından emin olun:

    • Projeniz şu platform sürümlerini veya sonraki sürümleri hedeflemelidir:
      • iOS 11
      • macOS 10.13
      • tvOS 12
      • watchOS 6
  • Uygulamanızı çalıştırmak için fiziksel bir Apple cihaz kurun. ve şu görevleri tamamlayın:

    • için bir Apple Anında Bildirim Kimlik Doğrulama Anahtarı edinin Apple Geliştirici hesabı
    • XCode'daki Push Bildirimleri'ni Uygulama > Özellikler.

Xcode projeniz yoksa ve bir Firebase'i denemek istiyorsanız hızlı başlangıç örneklerimizden birini indirebilirsiniz.

Firebase projesi oluşturma

Firebase'i Apple uygulamanıza ekleyebilmek için öncelikle bir Firebase oluşturmanız gerekir projenize bağlanabilirsiniz. Ziyaret edin: Şu konular hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlama: Firebase projeleri.

Uygulamanızı Firebase'e kaydedin

Firebase'i Apple uygulamanızda kullanmak için uygulamanızı Firebase projesi. Uygulamanızı kaydetme işlemi genellikle "ekleme" olarak adlandırılır uygulamanızı belirler.

  1. Firebase konsoluna gidin.

  2. Projeye genel bakış sayfasının ortasındaki iOS+ simgesini tıklayın. kurulum iş akışını başlatın.

    Firebase projenize daha önce uygulama eklediyseniz Uygulama ekle'yi tıklayın 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'ınızı edinmek için GoogleService-Info.plist dosyasını indir'i tıklayın platformların yapılandırma dosyasına (GoogleService-Info.plist) bakın.

  2. Yapılandırma dosyanızı Xcode projenizin köküne taşıyın. İstenirse Yapılandırma dosyasını tüm hedeflere eklemeyi seçin.

Projenizde birden fazla paket kimliği varsa her paketi ilişkilendirmeniz gerekir. Firebase konsolunda kayıtlı bir uygulamayla kimlik doğrulaması yaparak her uygulamanın kendine ait GoogleService-Info.plist dosyası vardır.

Firebase SDK'larını uygulamanıza ekleyin

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

  1. Xcode'da, uygulama projeniz açıkken Dosya > Paket Ekle'yi tıklayın.
  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ındaki Diğer Bağlayıcı İşaretleri bölümüne ekleyin.
  6. Firebase Cloud Messaging ile optimum bir deneyim için şunları yapmanızı öneririz: Google Analytics'i etkinleştirme Firebase projenize ekleyin ve uygulamanıza Google Analytics için Firebase SDK'sını ekleyin. Şunları yapabilirsiniz: IDFA koleksiyonu olmayan veya IDFA koleksiyonu olan kitaplığı seçin.
  7. İşlemi tamamladığınızda, Xcode otomatik olarak arka planda tutmalarını sağlar.

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

APNs kimlik doğrulama anahtarınızı Firebase'e yükleyin. Halihazırda bir APNs kimlik doğrulama anahtarınız yoksa Apple Geliştirici Üye Merkezi.

  1. Firebase konsolunda projenizin içinde, dişli simgesi, seçin Proje Ayarları'nı tıklayın ve ardından Cloud Messaging sekmesi.

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

  3. Anahtarınızı kaydettiğiniz konuma gidin, anahtarı seçin ve . Anahtarın anahtar kimliğini ekleyin ( Apple Developer Member Center) oturum açın Yükle.

Uygulamanızda Firebase'i başlatın

Firebase başlatma kodunu uygulamanıza eklemeniz gerekir. İçe aktarma inceleyin ve paylaşılan bir örneği aşağıda gösterildiği gibi yapılandırın:

  1. FirebaseCore modülünü UIApplicationDelegate ve diğer Yetki verdiğiniz uygulamanın kullandığı Firebase modülleri. Ö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. Şunu yapılandır: FirebaseApp paylaşılan örneğinizin application(_:didFinishLaunchingWithOptions:) yöntemi:

    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şturup bunu eklemeniz gerekir UIApplicationDelegateAdaptor veyaApp NSApplicationDelegateAdaptor. Uygulama yetkisi kaydırmayı da devre dışı bırakmanız gerekir. Örneğin, 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 bildirimlere kaydol

Başlangıçta veya uygulama akışınızda istenilen noktada uygulamanızı uzaktan bildirimlere kaydetme. Telefonla arama Gösterilen registerForRemoteNotifications:

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 jetonu. Çünkü jetonu alan adındaki bir alana girmeniz Bildirim oluşturucuyu bu eğiticiyi tamamlamak için kullanın. Jetonu kopyaladığınızdan emin olun veya güvenli bir şekilde saklamanızı öneririz.

FCM SDK'sı varsayılan olarak uygulama başlangıcında istemci uygulaması örneği için kayıt jetonu. APNs cihaz jetonuna benzer şekilde, bu jeton hedeflenmiş bildirimler göndermenize olanak tanır. özelliğini kullanabilirsiniz.

Apple platformlarının genellikle uygulama başlangıcında bir APNs cihaz jetonu sağlaması gibi, FCM, FIRMessagingDelegate aracılığıyla bir kayıt jetonu sağlar messaging:didReceiveRegistrationToken: yöntemini çağırın. FCM SDK, uygulamanın ilk lansmanı sırasında yeni veya mevcut bir jetonu alır ve her jeton güncellendiğinde veya geçersiz hale getirildiğinde. Her durumda, FCM SDK'sı messaging:didReceiveRegistrationToken: çağrısını yapar geçerli bir jetonla.

Kayıt jetonu aşağıdaki durumlarda değişebilir:

  • Uygulama yeni bir cihaza geri yüklenir.
  • Kullanıcı uygulamayı kaldırır/yeniden yükler
  • Kullanıcı uygulama verilerini siler.

Mesajlaşma yetkisini ayarlama

Kayıt jetonları almak için mesajlaşma yetkisini uygulayın protokolü ve çağrıdan sonra FIRMessaging öğesinin delegate özelliğini ayarlayın [FIRApp configure]. Örneğin, uygulama temsilciniz mesajlaşma yetkilendirmesine uygunsa protokolü kullanıyorsanız yetki verilen kullanıcıyı application:didFinishLaunchingWithOptions: üzerinden ayarlayabilirsiniz çok zor bir iş.

Swift

Messaging.messaging().delegate = self

Objective-C

[FIRMessaging messaging].delegate = self;

Geçerli kayıt jetonu getiriliyor

Kayıt jetonları bu yöntemle yayınlanır messaging:didReceiveRegistrationToken: Bu yöntem genellikle bir defa kayıt jetonuyla başlar. Bu yöntem çağrıldığında, aşağıdakiler için en 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 olabilir.

Jetonu doğrudan token(tamamlanma:) değerini girin. 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;
  }
}];

Bu yöntemi depolama yerine istediğiniz zaman jetona erişmek için kullanabilirsiniz somut olarak ortaya koyar.

Jeton yenilemeyi izleme

Jeton güncellendiğinde bildirim almak için mesajlaşma yetki protokolüne ekleyin. Aşağıdaki örnekte, ve uygun delege yöntemini ekliyor:

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, şunu dinleyebilirsiniz: NSNotification kFIRMessagingRegistrationTokenRefreshNotification delege etme yöntemi sunmak yerine. Jeton özelliği her zaman mevcut jeton değerini belirleyin.

Bildirim mesajı gönder

  1. Uygulamayı hedef cihaza yükleyip çalıştırın. Apple cihazlarda uzaktan bildirim alma izni isteğini kabul edin.

  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 mesajınızı oluşturun kampanya.

    1. Firebase Notification mesajları'nı ve ardından Create'i (Oluştur) seçin.
  5. Aksi takdirde, Kampanyalar sekmesinde Yeni kampanya'yı seçin. ve ardından Bildirimler'i tıklayın.

  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 ekleyin etiketli alana kaydı girin bölümündeki talimatları uygulayın.

  9. Test et'i seçin.

Test et'i seçmenizden sonra, hedeflenen istemci cihazı (uygulama arka plan) bildirimi alır.

Uygulamanıza mesaj teslimiyle ilgili analizler için bkz. FCM raporlama kontrol paneli, Apple ve Android cihazlarda gönderilen ve açılan iletilerin sayısı "gösterimler" için veriler (kullanıcılar tarafından görülen bildirimler).

Sonraki adımlar

Hesabınıza bildirim mesajlarının ötesine geçip diğer, daha gelişmiş davranışlar uygulamanız için aşağıdaki adımları uygulayın: