You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.iOS集成FCM时Messaging.SharedInstance.Delegate为空崩溃求助

解决Xamarin.iOS集成FCM时Messaging.SharedInstance为空的崩溃问题

针对你遇到的执行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:25:22