Xamarin.iOS: уведомления о толчке Firebase не работают

Я разрабатываю приложение Xamarin.Forms с клиентами Xamarin.Android и Xamarin.iOS. Для push-уведомлений я использую библиотеку FirebasePushNotificationPlugin . Он отлично работает на Android, но не на iOS.

В iOS приложение просто закрывается после запроса на использование push-уведомлений. Итак: отображается «Разрешить / Не разрешать» всплывающее окно, и когда пользователь нажимает кнопку «Разрешить», приложение закрывается. Никакое исключение не бросается или что-то еще.

Я сделал каждый шаг в инструкциях по установке, но, чтобы дважды проверить, я покажу вам скриншоты всего:

  1. Firebase console: я зарегистрировал приложение iOS на консоли Firebase и ввел все необходимые поля (идентификатор приложения, идентификатор пакета, идентификатор магазина приложений, префикс идентификатора приложения). Я также загрузил ключ аутентификации APN (но без сертификатов).

Приложение Firebase Console Конфигурация приложения Firebase Console

  1. NuGet: Я добавил Plugin.FirebasePushNotification пакет как Xamarin.Forms и Xamarin.iOS проектов.

Пакеты VisualStudio NuGet

  1. GoogleService-Info.plist: я добавил GoogleService-Info.plist (который я получил из консоли Firebase) в проект Xamarin.iOS и установил его действие сборки BundleResource.

Свойства VisualStudio GoogleService-Info.plist

  1. Info.plist: я включил режим удаленных уведомлений и добавил FirebaseAppDelegateProxyEnabled (и установил его в No) в Info.plist.

Info.plist

  1. Entitlements.plist : Я добавил права на получение продуктов aps-environment.

Entitlements.plist

Это production(и не development), потому что я не могу запускать и отлаживать приложение, поэтому приложение фактически загружается каждый раз в App Store Connect и тестируется с помощью TestFlight в качестве внутреннего тестера.

  1. Xamarin.iOS AppDelegate: я инициализирую пакет в AppDelegate.FinishedLaunchingметоде, сразу после LoadApplication(new App());. falseПараметр означает , что он не будет автоматически регистрироваться для уведомлений (он будет зарегистрирован позже вручную).

Xamarin.iOS AppDelegate

Я также переопределить методы RegisteredForRemoteNotifications, FailedToRegisterForRemoteNotifications, DidReceiveRemoteNotificationи вызвать уважаться методы (как указано в Getting Started инструкции).

  1. Xamarin.Forms: Теперь это когда все идет в ад на iOS. Когда он вызывает CrossFirebasePushNotification.Current.RegisterForPushNotifications();, он показывает всплывающее окно «Разрешить / Не разрешать», и после того, как пользователь нажимает «Разрешить», приложение просто закрывается. Никакое исключение не бросается или ничего (ну, по крайней мере, ничто не попадает в инструкцию try / catch). Приложение просто отключается.

Xamarin.Forms App.xaml.cs

Интересным может быть то, что токен FCM уже (успешно) создан до этого, и если я отправлю push-сообщение этому токену (этого приложения iOS), сервер Firebase вернется success. Поэтому я предполагаю, что часть Firebase верна, но что-то не так с iOS и / или библиотекой?

Любой совет будет очень благодарен!

c#,firebase,xamarin,xamarin.ios,firebase-cloud-messaging,

1

Ответов: 1


0 принят

Для тех, кто читает это: я решил эту проблему, удалив библиотеку FirebasePushNotificationPlugin , которая, по-видимому, не работает на iOS. Затем я выполнил уведомления с помощью пакета Xamarin.Firebase.iOS.CloudMessaging , следуя этому руководству GettingStarted .

c #, firebase, cybercine, xamarin.ios, firebase-cloud-messaging,
Похожие вопросы