Пуш-уведомления iOS Firebase не отображаются
Я настроил push-уведомления в соответствии с этим пошаговым руководством: https://www.appcoda.com/firebase-push-notifications/
Но когда я отправляю тестовое сообщение от Firebase, оно не появляется. Я выполнил все шаги, у меня есть действующие сертификаты:
Профиль обеспечения, настроенный для push-уведомлений:
Под моим идентификатором приложения показано, что уведомления включены:
И у меня есть сертификат, загруженный в Firebase:
И по моему AppDelegate
didFinishLaunchingWithOptions
:
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-уведомления от возможностей, вы получите этот файл.