代码之家  ›  专栏  ›  技术社区  ›  GregorMohorko

xamarin.ios:firebase推送通知不工作

  •  1
  • GregorMohorko  · 技术社区  · 8 年前

    我正在用xamarin.android和xamarin.ios客户机开发xamarin.forms应用程序。对于推送通知,我使用 FirebasePushNotificationPlugin 图书馆。它在Android上运行得很好,但在iOS上却不行。

    在iOS上,应用程序在请求使用推送通知后会关闭。因此:显示“允许/不允许”弹出窗口,当用户单击“允许”时,应用程序关闭。不会引发异常或其他任何情况。

    我已经完成了安装说明中的每一步,但是为了再次检查,我将向您显示所有内容的屏幕截图:

    1. FireBase控制台: 我已经在FireBase控制台上注册了iOS应用程序,并输入了所有必需的字段(app id、bundle id、app store id、app id prefix)。我还上载了APN身份验证密钥(但没有证书)。

    Firebase Console app Firebase Console app configuration

    1. NuGet: 我已经添加了 Plugin.FirebasePushNotification 同时打包到xamarin.forms和xamarin.ios项目。

    VisualStudio NuGet packages

    1. 谷歌服务-info.plist: 我已经将googleservice-info.plist(从firebase控制台获得)添加到xamarin.ios项目中,并将其构建操作设置为 BundleResource

    VisualStudio GoogleService-Info.plist Properties

    1. 信息列表: 我已启用远程通知后台模式,并在info.plist中添加了firebaseAppDelegateProxyEnabled(并将其设置为no)。

    Info.plist

    1. 权利.plist :我已添加生产APS环境权利。

    Entitlements.plist

    它是 production (而不是 development )因为我无法运行和调试应用程序,所以每次应用程序都会被上传到应用程序商店Connect,并作为内部测试人员使用TestFlight进行测试。

    1. xamarin.ios应用程序委派: 我在中初始化包 AppDelegate.FinishedLaunching 方法,紧接着 LoadApplication(new App()); . 这个 false 参数表示它不会自动注册通知(稍后将手动注册)。

    Xamarin.iOS AppDelegate

    我也重写方法 RegisteredForRemoteNotifications , FailedToRegisterForRemoteNotifications , DidReceiveRemoteNotification 并调用受尊重的方法(如 Getting Started 说明)。

    1. Xamarin.表格: 现在,iOS上的一切都陷入了困境。当它呼叫时 CrossFirebasePushNotification.Current.RegisterForPushNotifications(); ,显示“允许/不允许”弹出窗口,用户点击“允许”后,应用程序简单关闭。不会引发异常或任何东西(好吧,至少在try/catch语句中不会捕获任何东西)。应用程序只是关闭。

    Xamarin.Forms App.xaml.cs

    有趣的是,在这一切发生之前,已经(成功)创建了FCM令牌,如果我向该令牌(iOS应用程序)发送推送消息,FireBase服务器将返回 success . 所以我猜FireBase部分是正确的,但是iOS和/或图书馆有问题吗?

    任何建议都将不胜感激!

    1 回复  |  直到 7 年前
        1
  •  1
  •   GregorMohorko    7 年前

    对于任何阅读本文的人:我通过删除 FirebasePushNotificationPlugin 图书馆,显然不适用于iOS。然后,我使用 Xamarin.Firebase.iOS.CloudMessaging 改为打包,如下所示 GettingStarted 指南。

    推荐文章