Как я могу получить APN перед токеном FCM конкретно в Firebase?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу получить APN перед токеном FCM конкретно в Firebase?

Сообщение Anonymous »

До возникновения этой ошибки я использовал Xcode, на котором был установлен Firebase. Сегодня около 12:00 я начал сталкиваться с такой ошибкой
APNS device token not set before retrieving FCM Token for Sender ID 'XXXX'. Be sure to re-retrieve the FCM token once the APNS device token is set.

До 12:00 я вообще не сталкивался с ошибкой
Повозившись с ней 9 часов, я попробовал перемещать методы, посмотрел вверх множество веб-сайтов, чтобы найти точную ошибку, выполнить отладку и даже зайти на YouTube из всех мест, но не могу понять, откуда возникает ошибка.
Если это поможет, я сейчас используя Xcode 16 с Firebase версии 10.27.
Вот код для всех, кто думает, что сможет найти ответ.
Это в моем AppDelegate из постоянной отладки.
Для дополнительного контекста:
  • У меня есть приложение, работающее на моем iPhone 15 Pro Max, и оно работало задолго до ошибка
  • У меня включены фоновые режимы (фоновая загрузка, обработка, удаленные уведомления)
  • В моей консоли Firebase у меня есть ключ APN в моем облаке Раздел «Сообщения».
  • Я добавил приложение на свой сервер Firebase.
  • В моем коде есть Google Info.plist.
  • Мое приложение зарегистрировано в App Attest (AppCheck) и DeviceCheck
// This method gets called when the app successfully registers for remote notifications and receives a device token from APNs
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
Messaging.messaging().apnsToken = deviceToken
print("APNs Device Token: \(deviceToken)")

// Fetch the FCM registration token (this token is used to send push notifications through Firebase)
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)")
}
}
}

// This method is called when the app finishes launching
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Initialize Firebase
FirebaseApp.configure()

// Log app open event (for Firebase Analytics)
FirebaseAnalytics.Analytics.logEvent(AnalyticsEventAppOpen, parameters: nil)

// Set the delegate for Firebase Messaging
Messaging.messaging().delegate = self

// Register for remote notifications
application.registerForRemoteNotifications()

// Request notification authorization from the user
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
if granted {
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
}
}

// Set UNUserNotificationCenter delegate
UNUserNotificationCenter.current().delegate = self

return true
}

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
if let fcm = Messaging.messaging().fcmToken {
print("fcm", fcm)
}
}

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
handleDailyReportTrigger()
completionHandler([.banner, .sound, .badge])
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... ecifically
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»