Я разрабатываю приложение Xamarin.Forms с клиентами Xamarin.Android и Xamarin.iOS. Для push-уведомлений я использую библиотеку FirebasePushNotificationPlugin . Он отлично работает на Android, но не на iOS.
В iOS приложение просто закрывается после запроса на использование push-уведомлений. Итак: отображается «Разрешить / Не разрешать» всплывающее окно, и когда пользователь нажимает кнопку «Разрешить», приложение закрывается. Никакое исключение не бросается или что-то еще.
Я сделал каждый шаг в инструкциях по установке, но, чтобы дважды проверить, я покажу вам скриншоты всего:
- Firebase console: я зарегистрировал приложение iOS на консоли Firebase и ввел все необходимые поля (идентификатор приложения, идентификатор пакета, идентификатор магазина приложений, префикс идентификатора приложения). Я также загрузил ключ аутентификации APN (но без сертификатов).
- NuGet: Я добавил Plugin.FirebasePushNotification пакет как Xamarin.Forms и Xamarin.iOS проектов.
- GoogleService-Info.plist: я добавил GoogleService-Info.plist (который я получил из консоли Firebase) в проект Xamarin.iOS и установил его действие сборки
BundleResource
.
- Info.plist: я включил режим удаленных уведомлений и добавил FirebaseAppDelegateProxyEnabled (и установил его в No) в Info.plist.
- Entitlements.plist : Я добавил права на получение продуктов aps-environment.
Это production
(и не development
), потому что я не могу запускать и отлаживать приложение, поэтому приложение фактически загружается каждый раз в App Store Connect и тестируется с помощью TestFlight в качестве внутреннего тестера.
- Xamarin.iOS AppDelegate: я инициализирую пакет в
AppDelegate.FinishedLaunching
методе, сразу после LoadApplication(new App());
. false
Параметр означает , что он не будет автоматически регистрироваться для уведомлений (он будет зарегистрирован позже вручную).
Я также переопределить методы RegisteredForRemoteNotifications
, FailedToRegisterForRemoteNotifications
, DidReceiveRemoteNotification
и вызвать уважаться методы (как указано в Getting Started инструкции).
- Xamarin.Forms: Теперь это когда все идет в ад на iOS. Когда он вызывает
CrossFirebasePushNotification.Current.RegisterForPushNotifications();
, он показывает всплывающее окно «Разрешить / Не разрешать», и после того, как пользователь нажимает «Разрешить», приложение просто закрывается. Никакое исключение не бросается или ничего (ну, по крайней мере, ничто не попадает в инструкцию try / catch). Приложение просто отключается.
Интересным может быть то, что токен FCM уже (успешно) создан до этого, и если я отправлю push-сообщение этому токену (этого приложения iOS), сервер Firebase вернется success
. Поэтому я предполагаю, что часть Firebase верна, но что-то не так с iOS и / или библиотекой?
Любой совет будет очень благодарен!
c#,firebase,xamarin,xamarin.ios,firebase-cloud-messaging,