了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

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

FCM'ye başlamak için en basit kullanım örneğini oluşturun: Uygulama, cihazda arka planda çalışırken Bildirimler oluşturucusundan bir geliştirme cihazına bir test bildirimi mesajı göndermek. Bu sayfada, kurulumdan doğrulamaya kadar bunu başarmak için atılacak tüm adımlar listelenmektedir; FCM için bir Apple istemci uygulaması ayarladıysanız zaten tamamlamış olduğunuz 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 içerir. Özellikle FCM için, APNs kimlik doğrulama anahtarınızı yüklemeniz ve uzaktan bildirimler için kaydolmanız gerekir.

Önkoşullar

  • Aşağıdakileri yükleyin:

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

    • Projeniz şu platform sürümlerini veya sonraki sürümleri hedeflemelidir:
      • iOS 11
      • macOS 10.13
      • tvOS 12
      • OS 6 izle
  • Uygulamanızı çalıştırmak için fiziksel bir Apple aygıtı 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.
    • App > Capabilities altında XCode'da Push Bildirimlerini etkinleştirin.

Halihazırda bir Xcode projeniz yoksa ve yalnızca bir Firebase ürünü denemek istiyorsanız, hızlı başlangıç ​​örneklerimizden birini indirebilirsiniz.

Bir Firebase projesi oluşturun

Firebase'i Apple uygulamanıza ekleyebilmeniz için uygulamanıza bağlanmak üzere 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ı kaydettirmek genellikle uygulamanızı projenize "eklemek" olarak adlandırılır.

  1. Firebase konsoluna gidin.

  2. 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.

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

  4. (İsteğe bağlı) Diğer uygulama bilgilerini girin: Uygulama takma adı ve Uygulama Mağazası Kimliği .

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

Bir Firebase yapılandırma dosyası ekleyin

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

  2. Yapılandırma dosyanızı Xcode projenizin köküne taşıyın. İstenirse, yapılandırma dosyasını tüm hedeflere eklemek için 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.

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'da, uygulama projeniz açıkken File > Add Packages seçeneğine gidin.
  2. İstendiğinde, Firebase Apple platformları SDK deposunu ekleyin:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Firebase Cloud Messaging kitaplığını seçin.
  5. Firebase Cloud Messaging ile optimum bir deneyim için Firebase projenizde Google Analytics'i etkinleştirmenizi ve Google Analytics için Firebase SDK'yı uygulamanıza eklemenizi öneririz. Kütüphaneyi IDFA koleksiyonu olmadan veya IDFA koleksiyonu ile seçebilirsiniz.
  6. Bittiğinde, Xcode otomatik olarak arka planda bağımlılıklarınızı çö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. Halihazırda bir APN kimlik doğrulama anahtarınız yoksa Apple Developer Üye Merkezi'nde bir tane oluşturduğunuzdan emin olun.

  1. Firebase konsolundaki projenizin içinde, dişli çark simgesini seçin, Proje Ayarları'nı seçin ve ardından Bulut Mesajlaşma sekmesini seçin.

  2. iOS uygulama yapılandırması altındaki APN'ler kimlik doğrulama anahtarında , Yükle düğmesine tıklayın.

  3. Anahtarınızı kaydettiğiniz konuma göz atın, onu seçin ve Aç'a tıklayın. Anahtarın anahtar kimliğini ekleyin ( Apple Geliştirici Üye Merkezi'nde bulunur) ve Yükle'yi tıklayın.

Uygulamanızda Firebase'i başlatın

Uygulamanıza Firebase başlatma kodu 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. UIApplicationDelegate uygulamanıza FirebaseCore modülünü ve uygulama temsilcinizin kullandığı diğer Firebase modüllerini içe 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;
    // ...
          
  2. Uygulama temsilcinizin application(_:didFinishLaunchingWithOptions:) yönteminde bir FirebaseApp paylaşılan örneği 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];
  3. SwiftUI kullanıyorsanız, bir uygulama temsilcisi oluşturmalı ve bunu UIApplicationDelegateAdaptor veya NSApplicationDelegateAdaptor aracılığıyla App yapınıza eklemelisiniz. Uygulama temsilcisi swizzling'i 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ızda istenen noktada, uygulamanızı uzaktan bildirimler için kaydedin. registerForRemoteNotifications gösterildiği gibi arayı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şin

Belirli bir cihaza mesaj göndermek için, o cihazın kayıt jetonunu bilmeniz gerekir. Bu öğreticiyi tamamlamak için belirteci Bildirimler düzenleyicisindeki bir alana girmeniz gerekeceğinden, aldıktan sonra belirteci 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'nin cihaz belirtecine benzer şekilde, bu belirteç, uygulamanızın belirli herhangi bir örneğine hedefli bildirimler göndermenize olanak tanır.

Apple platformlarının tipik olarak uygulama başlangıcında bir APNs cihaz belirteci sağlaması gibi, FCM de FIRMessagingDelegate 'ın messaging:didReceiveRegistrationToken: yöntemi aracılığıyla bir kayıt belirteci sağlar. FCM SDK, ilk uygulama başlatma 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 belirteçle messaging:didReceiveRegistrationToken: öğesini çağırır.

Kayıt belirteci ş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 ayarla

Kayıt belirteçlerini almak için, mesajlaşma temsilci protokolünü uygulayın ve [FIRApp configure] çağırdıktan sonra FIRMessaging delegate özelliğini ayarlayın. Örneğin, uygulama temsilciniz mesajlaşma temsilci protokolüne uygunsa, 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, kayıt belirteciyle başlayan her uygulama için genellikle bir kez çağrılır. Bu yöntem çağrıldığında, aşağıdakiler için ideal zamandır:

  • Kayıt belirteci yeniyse, uygulama sunucunuza gönderin.
  • Kayıt jetonunu konulara abone olun. 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. Belirteç alımı herhangi bir şekilde başarısız olursa boş olmayan bir hata verilir.

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 istediğiniz zaman bu yöntemi kullanabilirsiniz.

Belirteç yenilemesini izleyin

Belirteç her güncellendiğinde bilgilendirilmek için, mesajlaşma temsilci protokolüne uyan 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ı bir NSNotification dinleyebilirsiniz. belirteç özelliği her zaman geçerli belirteç değerine sahiptir.

Bildirim mesajı gönder

  1. Uygulamayı hedef cihaza yükleyin ve çalıştırın. Apple aygıtlarında, uzaktan bildirim almak için izin isteğini kabul etmeniz gerekir.

  2. Uygulamanın cihazda arka planda olduğ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ı seçin 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 belirteci ekle etiketli alana, bu kılavuzun bir önceki bölümünde edindiğiniz kayıt belirtecini girin.

  9. Test Et'i seçin.

Test öğesini seçtikten sonra, hedeflenen istemci cihaz (uygulama arka planda olacak şekilde) bildirimi almalıdır.

Uygulamanıza ileti teslimi hakkında fikir edinmek için, Android uygulamaları için "gösterimler" (kullanıcılar tarafından görülen bildirimler) verileriyle birlikte Apple ve Android cihazlarda gönderilen ve açılan iletilerin sayısını kaydeden FCM raporlama panosuna 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.: