Я столкнулся со странной проблемой в push-уведомлении ios firebase. Я получаю уведомление на устройстве всякий раз, когда я запускаю приложение из XCode или даже когда я создаю архив, я успешно получаю уведомления.
Но когда я запускаю сборку релиза на устройстве или загружаю в магазин приложений push-уведомления, у меня не работает, и я получаю сообщение об ошибке ниже
Сертификаты для разработки и производства загружены и действительны.
{
"multicast_id": 6319718121948146737,
"success": 0,
"failure": 1,
"canonical_ids": 0,
"results": [
{
"error": "InvalidRegistration"
}
]
}
второй раз, когда я вызываю API с таким же токеном, тогда вместо InvalidRegistration
я получаю NotRegistered
error
Вот так я генерирую токен fcm
func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) {
print("Firebase registration token: \(fcmToken)")
}
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
// Pass device token to auth
#if DEVELOPMENT
Auth.auth().setAPNSToken(deviceToken, type: .sandbox)
Messaging.messaging().setAPNSToken(deviceToken, type: .sandbox)
#else
Auth.auth().setAPNSToken(deviceToken, type: .prod)
Messaging.messaging().setAPNSToken(deviceToken, type: .prod)
#endif
Messaging.messaging().apnsToken = deviceToken
Messaging.messaging().shouldEstablishDirectChannel = true
//tried this
let token = Messaging.messaging().fcmToken
print("Firebase registration token: \(token)")
//tried this also both are giving same token but none of them is
//working in release build
let refreshedToken = InstanceID.instanceID().token()
print("InstanceID token: \(refreshedToken)")
}