Catch up on everthing we announced at this year's Firebase Summit. Learn more

Arka plana sahip bir Apple uygulamasına test mesajı gönderin

Bir test bildirim mesajı göndererek: En basit kullanım örneği oluşturmaktır FCM başlamak için Bildirimler besteci Uygulamanın cihazdaki arka planda olduğunda bir geliştirme cihazına. Bu sayfa listeler tüm adımları kurulumundan doğrulamasına, bunu başarmak için - bu varsa zaten tamamlanmış adımları kapsayabilir bir Apple istemci uygulaması kurmak FCM.

Apple projenize Firebase 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 şunları yapmanız gerekir sizin APN'ler kimlik doğrulama anahtarı yükleyebilir ve uzak bildirimleri için kayıt .

Önkoşullar

  • Aşağıdakileri yükleyin:

    • Xcode 12.5 veya üstü
  • Projenizin şu gereksinimleri karşıladığından emin olun:

    • Projeniz bu platform sürümlerini veya sonraki sürümlerini hedeflemelidir:
      • iOS 10
      • macOS 10.12
      • tvOS 12
      • watchOS 6
  • Uygulamanızı çalıştırmak için fiziksel bir Apple cihazı ayarlayın ve bu görevleri tamamlayın:

    • Sizin için bir Apple Push Notification Doğrulama Anahtarı Edinme Elma Geliştirici hesabına .
    • > Yetenek App altında XCode itin Bildirimleri Etkinleştir.

Zaten bir Xcode projem var ve sadece Firebase ürünü denemek istemiyorsanız, bizim birini indirebilirsiniz hızlı başlangıç örneklerinin .

Bir Firebase projesi oluşturun

Firebase'i Apple uygulamanıza eklemeden önce uygulamanıza bağlanmak için bir Firebase projesi oluşturmanız gerekir. Ziyaret Firebase Projeleri Anlayın Firebase projeleri hakkında daha fazla bilgi edinmek.

Uygulamanızı Firebase'e kaydedin

Bir Firebase projeniz olduktan sonra buna Apple uygulamanızı ekleyebilirsiniz.

Ziyaret Firebase Projeleri anlama birden inşa varyantları nasıl işleneceğini dahil olmak üzere bir Firebase projeye uygulamalar ekleyerek daha iyi uygulamalar ve değerlendirmeler hakkında bilgi edinmek için.

  1. Git Firebase konsoluna .

  2. Proje genel bakış Sayfanın ortasında, kurulum iş akışını başlatmak için iOS + simgesini tıklayın.

    Zaten Firebase projeye bir uygulamayı eklediyseniz, platformu seçeneklerini görüntülemek için uygulama ekleme tıklayın.

  3. Paket kimliği alanına uygulamanızın paket kimliği girin.

  4. Uygulama rumuz ve App Store ID: (İsteğe bağlı) diğer uygulama bilgilerini girin.

  5. Kayıt uygulamasını tıklayın.

Bir Firebase yapılandırma dosyası ekleyin

  1. Senin Firebase Elma platformların yapılandırma dosyası (elde etmek İndir GoogleService-Info.plist'ni tıklayın GoogleService-Info.plist ).

  2. Yapılandırma dosyanızı Xcode projenizin kök dizinine taşıyın. İstenirse, yapılandırma dosyasını tüm hedeflere eklemek için seçin.

Eğer projenizde birden paket kimliği yoksa, Her bir uygulama kendi olabilir böylece Firebase konsolunda tescilli uygulaması ile her paket kimliği ilişkilendirmek gerekir GoogleService-Info.plist dosyasını.

Uygulamanıza Firebase SDK'ları ekleyin

Firebase bağımlılıklarını kurmak ve yönetmek için Swift Paket Yöneticisi'ni kullanın.

  1. Xcode olarak, uygulama açma projesi, gezinilebilen ile Dosya> Swift Paketleri> Paket Bağımlılık Ekle.
  2. İstendiğinde, Firebase Apple platformları SDK deposunu ekleyin:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Firebase Bulut Mesajlaşma kitaplığını seçin.
  5. Firebase Cloud Messaging ile Optimum deneyim için, tavsiye Google Analytics sağlayan sizin Firebase projesinde ve uygulamanızda Google Analytics'in Firebase SDK ekledi. IDFA koleksiyonu olmayan veya IDFA koleksiyonu olan kütüphaneyi seçebilirsiniz.
  6. Bittiğinde, Xcode otomatik olarak bağımlılıklarınızı arka planda çözmeye ve indirmeye başlayacaktır.

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

APNs kimlik doğrulama anahtarınızı Firebase'e yükleyin. Zaten bir APN'ler kimlik doğrulama anahtarı yoksa, içinde oluşturmak için emin olun Elma Geliştirici Üye Merkezi .

  1. Firebase konsolunda proje içinde, dişli çark simgesini seçmek Proje Ayarları seçip Bulut Mesajlaşma sekmesini seçin.

  2. İOS uygulaması yapılandırması altında APN'ler kimlik doğrulama anahtarı, Yükle düğmesini tıklayın.

  3. , Anahtarını kaydettiğiniz konuma gidin, dosyayı seçin ve Aç'ı tıklayın. (Mevcut anahtar için anahtar kimliği ekle Elma Geliştirici Üye Merkezi ) 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:

  1. Sizin de Firebase modülü içe UIApplicationDelegate :

    Süratli

    import Firebase

    Amaç-C

    @import Firebase;
  2. Yapılandırma bir FirebaseApp tipik uygulamanızın içinde, örnek paylaşılan application:didFinishLaunchingWithOptions: yöntemi:

    Süratli

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Amaç-C

    // Use Firebase library to configure APIs
    [FIRApp configure];

Uzaktan bildirimler için kaydolun

İster başlangıçta ister uygulama akışınızın istediğiniz noktasında, uygulamanızı uzaktan bildirimler için kaydedin. Çağrı registerForRemoteNotifications gösterildiği gibi:

Süratli

if #available(iOS 10.0, *) {
  // For iOS 10 display notification (sent via APNS)
  UNUserNotificationCenter.current().delegate = self

  let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
  UNUserNotificationCenter.current().requestAuthorization(
    options: authOptions,
    completionHandler: { _, _ in }
  )
} else {
  let settings: UIUserNotificationSettings =
    UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
  application.registerUserNotificationSettings(settings)
}

application.registerForRemoteNotifications()

Amaç-C

if ([UNUserNotificationCenter class] != nil) {
  // iOS 10 or later
  // For iOS 10 display notification (sent via APNS)
  [UNUserNotificationCenter currentNotificationCenter].delegate = self;
  UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
      UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
  [[UNUserNotificationCenter currentNotificationCenter]
      requestAuthorizationWithOptions:authOptions
      completionHandler:^(BOOL granted, NSError * _Nullable error) {
        // ...
      }];
} else {
  // iOS 10 notifications aren't available; fall back to iOS 8-9 notifications.
  UIUserNotificationType allNotificationTypes =
  (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
  UIUserNotificationSettings *settings =
  [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
  [application registerUserNotificationSettings:settings];
}

[application registerForRemoteNotifications];

Kayıt belirtecine erişin

Belirli bir cihaza mesaj göndermek için o cihazın kayıt jetonunu bilmeniz gerekir. Eğer bir alanda kodunu girmeniz gerekir Çünkü Bildirimler besteci Bu dersi tamamlamak için, emin geri almak sonra saklayın güvenli belirteç kopyalamak veya kolaylaştırır.

Varsayılan olarak, FCM SDK, uygulama başlatıldığında istemci uygulama örneği için bir kayıt belirteci oluşturur. APNs cihaz belirtecine benzer şekilde, bu belirteç, uygulamanızın belirli herhangi bir örneğine hedefli bildirimler göndermenize olanak tanır.

Elma platformlar tipik olarak uygulama başlangıç belirteci bir APN'ler cihaz sunmak Aynı şekilde, FCM ile belirteci bir kayıt sağlar FIRMessagingDelegate sitesindeki messaging:didReceiveRegistrationToken: yöntemi. 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 belirteç alır. Her durumda, FCM SDK çağırır messaging:didReceiveRegistrationToken: geçerli bir simgeyle.

Kayıt jetonu şu durumlarda değişebilir:

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

Mesajlaşma temsilcisini ayarlayın

Mesajlaşma temsilci protokolünü ve set uygulamak, kayıt belirteçleri almak için FIRMessaging 'ın delegate çağırarak sonra özelliğini [FIRApp configure] . Başvurunuz temsilci mesajlaşma temsilci protokolüne uygun Örneğin, size temsilci ayarlayabilirsiniz application:didFinishLaunchingWithOptions: kendisine.

Süratli

Messaging.messaging().delegate = self

Amaç-C

[FIRMessaging messaging].delegate = self;

Geçerli kayıt belirtecini getirme

Kayıt belirteçleri yöntemi aracılığıyla teslim edilir messaging:didReceiveRegistrationToken: . Bu yöntem, kayıt belirteci ile genellikle uygulama başlangıcında bir kez çağrılır. Bu yöntem çağrıldığında, ideal zaman:

  • Kayıt belirteci yeniyse, uygulama sunucunuza gönderin.
  • Kayıt belirtecini konulara abone olun. Bu, yalnızca yeni abonelikler veya kullanıcının uygulamayı yeniden yüklediği durumlar için gereklidir.

Doğrudan kullanarak jetonu alabilirsiniz :) belirteç (tamamlanmasını . 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 depolamak yerine erişmek için istediğiniz zaman bu yöntemi kullanabilirsiniz.

Belirteç yenilemeyi izle

Belirteç her güncellendiğinde bilgilendirilmek için mesajlaşma delege 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 dinleyebilirsiniz NSNotification adlı kFIRMessagingRegistrationTokenRefreshNotification bir temsilci yöntemi temin ziyade. Belirteç özelliği her zaman geçerli belirteç değerine sahiptir.

Bir bildirim mesajı gönder

  1. Uygulamayı hedef cihaza yükleyin ve çalıştırın. Uzak bildirimleri almak için izin isteğini kabul etmeniz gerekir.

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

  3. Bildirimler besteci ve Yeni bildirimi seçin.

  4. Mesaj metnini girin.

  5. Gönder test mesajı seçin.

  6. Alanında, FCM'yi kaydı jetonu ekle Bu kılavuzun bir önceki bölümde elde edilen belirteç kayıt girmek etiketli.

  7. Testi tıklayın

Eğer Testi tıkladıktan sonra, (arka planda uygulama ile) hedeflenen müşteri cihazı bildirim merkezindeki bildirim almalıdır.

Uygulamanıza mesaj teslimi içgörü için bkz FCM raporlama gösterge tablosu ileti sayısı gönderilir ve Android uygulamaları "gösterim" (kullanıcılar tarafından görülen bildirimler) için verileriyle birlikte Apple ve Android cihazlarda açılan kaydeder.

Sonraki adımlar

Bildirim mesajlarının ötesine geçmek ve uygulamanıza başka, daha gelişmiş davranışlar eklemek için bkz.: