C# Xamarin.iOS:Firebase推送通知不工作

C# Xamarin.iOS:Firebase推送通知不工作,c#,firebase,xamarin,xamarin.ios,firebase-cloud-messaging,C#,Firebase,Xamarin,Xamarin.ios,Firebase Cloud Messaging,我正在用Xamarin.Android和Xamarin.iOS客户端开发一个Xamarin.Forms应用程序。对于推送通知,我使用库。它在安卓系统上运行得很好,但在iOS上却不行 在iOS上,在请求使用推送通知后,应用程序只需关闭。因此:显示“允许/不允许”弹出窗口,当用户单击“允许”时,应用程序关闭。没有抛出异常或任何异常 我已经完成了安装说明中的每个步骤,但为了再次检查,我将向您展示所有内容的屏幕截图: Firebase控制台:我已在Firebase控制台上注册了我的iOS应用程序,并输入

我正在用Xamarin.Android和Xamarin.iOS客户端开发一个Xamarin.Forms应用程序。对于推送通知,我使用库。它在安卓系统上运行得很好,但在iOS上却不行

在iOS上,在请求使用推送通知后,应用程序只需关闭。因此:显示“允许/不允许”弹出窗口,当用户单击“允许”时,应用程序关闭。没有抛出异常或任何异常

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

  • Firebase控制台:我已在Firebase控制台上注册了我的iOS应用程序,并输入了所有必填字段(应用程序ID、捆绑包ID、应用程序商店ID、应用程序ID前缀)。我还上传了APNs认证密钥(但没有证书)
  • NuGet:我已将包添加到Xamarin.Forms和Xamarin.iOS项目中
  • GoogleService Info.plist:我已经将GoogleService-Info.plist(从Firebase控制台获得)添加到Xamarin.iOS项目中,并将其构建操作设置为
    BundlerSource
  • Info.plist:我已启用远程通知后台模式,并在Info.plist中添加了FirebaseAppDelegateProxyEnabled(并将其设置为否)
  • 权利。plist:我添加了生产aps环境权利
  • 它是
    production
    (而不是
    development
    ),因为我无法运行和调试该应用程序,因此每次都会将该应用程序上载到app Store Connect,并使用TestFlight作为内部测试仪进行测试

  • Xamarin.iOS AppDelegate:我在
    AppDelegate.FinishedLaunching
    方法中初始化包,就在
    LoadApplication(new App())之后
    false
    参数意味着它不会自动注册通知(稍后将手动注册)
  • 我还覆盖了方法
    注册的远程通知
    注册失败的远程通知
    DidReceiveRemoteNotification
    ,并调用受尊重的方法(如说明中所述)

  • Xamarin.Forms:现在,iOS上的一切都将付诸东流。当它调用
    CrossFirebasePushNotification.Current.RegisterForPushNotifications()时,显示“允许/不允许”弹出窗口,用户单击“允许”后,应用程序简单关闭。没有抛出异常或任何东西(至少try/catch语句中没有捕获任何内容)。应用程序只是简单地关闭
  • 有趣的是,在所有这些之前,FCM令牌已经(成功)创建,如果我向该令牌(该iOS应用程序的)发送推送消息,Firebase服务器将返回
    success
    。所以我猜Firebase部分是正确的,但是iOS和/或库有问题吗


    任何建议都将不胜感激

    对于任何阅读本文的人:我已经通过删除库解决了这个问题,它显然在iOS上不起作用。然后,我按照此指导原则,使用该包实现了通知。

    使用这个firebase nuget包怎么样?它是由Xamarin创建的。我在以前的一个项目中成功地使用了它。我已经考虑过了,但是在Android上的实现也必须单独完成。。。我当前使用的库是使用您提到的包实现的。如果没有人提出解决方案,我一定会尝试。设备日志中是否显示任何内容?查看控制台是否会发出任何系统消息,说明它为什么会终止应用程序。我会在有机会时检查它。它是工作状态:“LoadApplication(new app());FirebasePushNotificationManager.Initialize(选项,true);CrossFirebasePushNotification.Current.RegisterForPushNotifications();返回基地。完成发射(应用程序,选项);'获取开始指南的链接已断开=/他们更改了文档的位置。我已更新链接,请再次检查@GregaMohorko我也将您的方法与本文相结合,这对我很有用。您是从iOS项目还是从main Forms项目中删除了FirebasePushNotificationPlugin?因为我在我的表单项目中使用FirebasePushNotificationPlugin,它适用于我的android项目。我将其从主表单项目中删除,并开始在android和iOS中使用Xamarin.Firebase.iOS.CloudMessaging。