Пуш-уведомления iOS Firebase не отображаются

Я настроил push-уведомления в соответствии с этим пошаговым руководством: https://www.appcoda.com/firebase-push-notifications/

Но когда я отправляю тестовое сообщение от Firebase, оно не появляется. Я выполнил все шаги, у меня есть действующие сертификаты:

Профиль обеспечения, настроенный для push-уведомлений:

Под моим идентификатором приложения показано, что уведомления включены:

И у меня есть сертификат, загруженный в Firebase:

И по моему AppDelegatedidFinishLaunchingWithOptions:

    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 })
        // For iOS 10 data message (sent via FCM
        FIRMessaging.messaging().remoteMessageDelegate = self
    } else {
        let settings: UIUserNotificationSettings =
            UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
        application.registerUserNotificationSettings(settings)
    }


    application.registerForRemoteNotifications()

Наряду с методом обратного вызова Firebase в AppDelegate:

func applicationReceivedRemoteMessage(_ remoteMessage: FIRMessagingRemoteMessage) {
    print(remoteMessage.appData)
}

И, очевидно, я импортировал:

import UserNotifications
import FirebaseInstanceID
import FirebaseMessaging

Я не уверен, почему push-уведомления не работают, похоже, что все на месте. Единственное, что я сделал необычно, это удалил права из Target -> Code Signing, так как это выдало мне ошибку недопустимых прав при попытке запустить приложение. Теперь, когда оно удалено, приложение работает нормально. У меня есть открытый вопрос об этой отдельной проблеме, но сейчас я предполагаю, что это не причина моих проблем здесь.

И просто для подтверждения, мне не нужно повторно загружать Google Plist после добавления уведомлений? Я использовал Firebase в своем проекте до добавления уведомлений, поэтому у меня уже есть один.

Спасибо за любую помощь в получении уведомлений!

2 ответа

Попробуйте добавить FirebaseAppDelegateProxyEnabled type "Boolean" value "NO" in your info.plist

и, возможно, добавить Messaging.messaging().shouldEstablishDirectChannel to true in your AppDelegate

Можете ли вы проверить на вкладке возможностей, если push-уведомления включены. Кроме того, начиная с Xcode 8 вам нужно добавить файл полномочий с набором aps-environment. Если вы отключите и включите push-уведомления от возможностей, вы получите этот файл.

Другие вопросы по тегам