Xamarin.iOS集成FCM时Messaging.SharedInstance.Delegate为空崩溃求助
针对你遇到的执行Messaging.SharedInstance.Delegate = this;时对象为空的崩溃问题,可尝试以下解决方案:
确认Firebase配置文件正确配置
检查GoogleService-Info.plist是否放置在iOS项目根目录,将其Build Action设置为BundleResource,且文件名不能修改。同时确保文件内的BUNDLE_ID与项目的Bundle Identifier完全一致。匹配NuGet包版本
保证Xamarin.Firebase.iOS.CloudMessaging和Xamarin.Firebase.iOS.Core的版本兼容,建议安装同大版本的稳定包。可清理NuGet缓存后重新还原:右键项目→管理NuGet程序包→设置→清除所有缓存,再重新安装Firebase相关包。调整初始化顺序
将Firebase初始化代码放在Xamarin.Forms初始化之前,修改后的代码开头如下:Firebase.Core.App.Configure(); global::Xamarin.Forms.Forms.Init();实现IMessagingDelegate接口
你的AppDelegate类必须显式实现IMessagingDelegate接口,示例代码:[Register("AppDelegate")] public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate, IMessagingDelegate { public void DidReceiveRegistrationToken(Messaging messaging, string fcmToken) { System.Diagnostics.Debug.WriteLine($"FCM Token: {fcmToken}"); } // 其他原有代码... }检查iOS部署目标
确保项目的Deployment Target不低于iOS 10.0(FCM的最低要求),可在项目属性→iOS应用→部署信息中调整。清理重建项目
清理解决方案,删除iOS项目的bin和obj文件夹,重新生成项目;必要时重启开发工具,避免缓存导致的初始化异常。
内容的提问来源于stack exchange,提问作者rana hd
相关产品推荐
相关产品推荐

