iOS не может получить push-уведомление от FCM по проекту Cordova (2018)
Я несколько дней застрял с этой проблемой (снова!). Push-уведомление FCM отлично работает на Android и на моей текущей версии приложения в реальном времени /prd (все еще работает и работает хорошо). Но недавно я обновился до Cordova 7.1.0, платформы iOS 4.4.0 и повторно добавил все плагины для моего следующего обновления приложения.
Все хорошо работает, кроме этого FCM на iOS!!!! Не работает для всех версий и всех устройств iOS. Раньше у меня была эта проблема, но это было легко исправить (отсутствовал файл GoogleService-Info.plist в плагине FCM). Но в настоящее время эта проблема появилась снова, и я действительно не знаю, как ее исправить. Проходил много вопросов и перепробовал много вещей.
Шаги, которые я сделал:
- Удалите и повторно добавьте плагин FCM, а также платформу iOS
- Проверьте и убедитесь, что файл не пуст для файлов GoogleService-Info.plist в: Cordova-plugin-fcm > src > ios; ресурсы платформы> ios > [myproject] >; платформа> ios > [myproject] > ресурсы> ресурсы
- Проверка отправки push-уведомлений с консоли Firebase. Это говорит, что завершено и отправлено! но не получает на iOS (получено на Android)
- Включение и выключение и повторное включение в возможностях Xcode: push-уведомления, а также фоновые режимы> удаленные уведомления и совместное использование цепочки для ключей
- Проверьте [myproject].entitlements > APS со значением Разработка есть
- Добавьте значение FirebaseAppDelegateProxyEnabled НЕТ в info.plist
- Проверьте действительность моего ключа APNS и сертификата через:
openssl s_client -connect gateway.push.apple.com:2195 -cert pushtry.pem -key pushtry.pem
и верните код подтверждения 0(ОК) в конце - Пытался протестировать APNS на http://pushtry.com/ но сказал, что Arvind APNS Connection Failed: 0 как результат. Когда я пытаюсь отправить сообщение FCM с того же веб-сайта, оно успешно отправлено (получено на Android, а не на iOS). Кто-нибудь знает, как правильно запустить этот процесс и каков должен быть результат?
- Проверьте все профили обеспечения и сертификаты и убедитесь, что они еще не истекли. И у меня есть Apple Push Service как для разработки, так и для производства.
- Дважды проверьте идентификатор пакета и идентификатор приложения, чтобы соответствовать настройкам консоли Firebase.
Я запускаю приложение из Xcode 10 на нескольких iPhone от iOS 11 до 12. Все не могут получать push-уведомления. Но когда я загружаю свое приложение из магазина игр, оно все еще получает push-уведомление. версия плагина FCM: cordova-plugin-fcm 2.1.2.
Пожалуйста помоги! Что я должен сделать и проверить, кроме всех упомянутых выше? Мне нужно обновить приложение в ближайшее время. Но я боюсь после обновления, все живые версии с недавно обновленным приложением не будут получать push-уведомления, что очень важно для нашего приложения!
Я подозреваю несоответствие профиля обеспечения с идентификатором подписи кода, но я никогда не менял их уже в течение 1 года + (обновляйте и восстанавливайте сертификат только после истечения срока его действия). Я не думаю, что это проблема от FCM, потому что он отправил push-уведомление и никаких проблем на Android. Но с другой стороны, последнее обновление моего приложения было два месяца назад. После этого я редко проверяю iPhone (особенно push-уведомления), потому что у меня его нет. Всегда делаю свою разработку с телефоном Android. Так может я что-то упустил? Совет и решение, пожалуйста?
Все версии моего приложения в моей разработке (мой локальный MAC) не работают сейчас. Даже если я попытаюсь собрать и запустить старую версию моего приложения. Push-уведомления не принимаются. Так что, возможно, моя проблема с Cordova или iOS.
2 ответа
У меня была та же проблема, и я решил ее, изменив систему сборки XCode:
Файл XCODE> Настройки проекта> (используйте систему Legacy Build вместо системы New Build.)
Также удалите FirebaseAppDelegateProxyEnabled из info.plist
Для меня проблема заключалась не в подключении ключа аутентификации IOS APNs к облачным сообщениям firebase для моего проекта. Я болван.