我正在用xamarin.android和xamarin.ios客户机开发xamarin.forms应用程序。对于推送通知,我使用
FirebasePushNotificationPlugin
图书馆。它在Android上运行得很好,但在iOS上却不行。
在iOS上,应用程序在请求使用推送通知后会关闭。因此:显示“允许/不允许”弹出窗口,当用户单击“允许”时,应用程序关闭。不会引发异常或其他任何情况。
我已经完成了安装说明中的每一步,但是为了再次检查,我将向您显示所有内容的屏幕截图:
-
FireBase控制台:
我已经在FireBase控制台上注册了iOS应用程序,并输入了所有必需的字段(app id、bundle id、app store id、app id prefix)。我还上载了APN身份验证密钥(但没有证书)。
-
NuGet:
我已经添加了
Plugin.FirebasePushNotification
同时打包到xamarin.forms和xamarin.ios项目。
-
谷歌服务-info.plist:
我已经将googleservice-info.plist(从firebase控制台获得)添加到xamarin.ios项目中,并将其构建操作设置为
BundleResource
。
-
信息列表:
我已启用远程通知后台模式,并在info.plist中添加了firebaseAppDelegateProxyEnabled(并将其设置为no)。
-
权利.plist
:我已添加生产APS环境权利。
它是
production
(而不是
development
)因为我无法运行和调试应用程序,所以每次应用程序都会被上传到应用程序商店Connect,并作为内部测试人员使用TestFlight进行测试。
-
xamarin.ios应用程序委派:
我在中初始化包
AppDelegate.FinishedLaunching
方法,紧接着
LoadApplication(new App());
. 这个
false
参数表示它不会自动注册通知(稍后将手动注册)。
我也重写方法
RegisteredForRemoteNotifications
,
FailedToRegisterForRemoteNotifications
,
DidReceiveRemoteNotification
并调用受尊重的方法(如
Getting Started
说明)。
-
Xamarin.表格:
现在,iOS上的一切都陷入了困境。当它呼叫时
CrossFirebasePushNotification.Current.RegisterForPushNotifications();
,显示“允许/不允许”弹出窗口,用户点击“允许”后,应用程序简单关闭。不会引发异常或任何东西(好吧,至少在try/catch语句中不会捕获任何东西)。应用程序只是关闭。
有趣的是,在这一切发生之前,已经(成功)创建了FCM令牌,如果我向该令牌(iOS应用程序)发送推送消息,FireBase服务器将返回
success
. 所以我猜FireBase部分是正确的,但是iOS和/或图书馆有问题吗?
任何建议都将不胜感激!