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

Xamarin.Forms中Plugin.FirebasePushNotification刷新Token未触发问题

Xamarin.Forms iOS端Firebase推送Token刷新事件未触发修复方案

针对你遇到的iOS端OnTokenRefresh事件未触发、安卓端正常的问题,可按以下步骤排查修复:

1. 调整Firebase初始化顺序

当前你在FinishedLaunching中先加载Xamarin.Forms应用再初始化Firebase推送,可能导致App构造函数中订阅的事件错过回调时机。修改初始化顺序:

public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
    global::Xamarin.Forms.Forms.Init();
    // 先初始化Firebase推送
    FirebasePushNotificationManager.Initialize(options, true);
    // 再加载应用实例
    LoadApplication(new App());
    return base.FinishedLaunching(app, options);
}

2. 主动请求推送权限

iOS 10+需要显式向用户请求推送权限,否则系统不会触发远程通知注册。在FinishedLaunching中添加权限请求代码:

// 放在Firebase初始化之后
UNUserNotificationCenter.Current.RequestAuthorization(UNAuthorizationOptions.Alert | UNAuthorizationOptions.Badge | UNAuthorizationOptions.Sound, (granted, error) =>
{
    if (granted)
    {
        InvokeOnMainThread(() => UIApplication.SharedApplication.RegisterForRemoteNotifications());
    }
});

3. 验证GoogleService-info.plist配置

  • 确保plist文件中的CLIENT_ID、GCM_SENDER_ID等参数与Firebase控制台一致
  • 右键文件→属性,确认生成操作设置为BundleResource,保证文件被打包进App

4. 检查FirebaseAppDelegateProxyEnabled设置

确认Info.plist中FirebaseAppDelegateProxyEnabled为布尔类型的YES,而非字符串类型。错误的类型会导致Firebase代理无法正常工作。

5. 排查注册日志

在AppDelegate的相关方法中添加日志,定位问题节点:

public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
{
    System.Diagnostics.Debug.WriteLine($"APNS Token已获取: {deviceToken.ToString()}");
    FirebasePushNotificationManager.DidRegisterRemoteNotifications(deviceToken);
}

public override void FailedToRegisterForRemoteNotifications(UIApplication application, NSError error)
{
    FirebasePushNotificationManager.RemoteNotificationRegistrationFailed(error);
    System.Diagnostics.Debug.WriteLine($"推送注册失败: {error.LocalizedDescription}");
}
  • 如果输出APNS Token已获取但未触发OnTokenRefresh,检查Firebase控制台是否上传了正确的APNs证书
  • 如果输出注册失败日志,根据错误信息排查权限或证书问题

6. 确认NuGet包兼容性

检查Plugin.PushNotification版本与当前Xamarin.Forms、Xamarin.iOS版本是否兼容,建议更新至最新稳定版避免版本冲突。

内容的提问来源于stack exchange,提问作者Amature123

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:25:33