AdamE.Firebase.iOS.CloudMessaging 12.7.0

dotnet add package AdamE.Firebase.iOS.CloudMessaging --version 12.7.0
                    
NuGet\Install-Package AdamE.Firebase.iOS.CloudMessaging -Version 12.7.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="AdamE.Firebase.iOS.CloudMessaging" Version="12.7.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AdamE.Firebase.iOS.CloudMessaging" Version="12.7.0" />
                    
Directory.Packages.props
<PackageReference Include="AdamE.Firebase.iOS.CloudMessaging" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add AdamE.Firebase.iOS.CloudMessaging --version 12.7.0
                    
#r "nuget: AdamE.Firebase.iOS.CloudMessaging, 12.7.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package AdamE.Firebase.iOS.CloudMessaging@12.7.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=AdamE.Firebase.iOS.CloudMessaging&version=12.7.0
                    
Install as a Cake Addin
#tool nuget:?package=AdamE.Firebase.iOS.CloudMessaging&version=12.7.0
                    
Install as a Cake Tool

AdamE.Firebase.iOS.CloudMessaging

.NET bindings for Firebase Cloud Messaging on Apple platforms, for use from .NET iOS and Mac Catalyst apps.

What this package provides

This package binds the Firebase Cloud Messaging Apple SDK surface exposed in the Firebase.CloudMessaging namespace. It provides access to Messaging, FCM token APIs, APNs token assignment, topic subscription APIs, message delivery metadata, and notification service extension helper APIs.

Use this package when you need:

  • FCM registration token retrieval from C#
  • APNs token registration through Messaging.SetApnsToken
  • topic subscribe and unsubscribe operations
  • notification extension helper access for rich notification handling

Most apps using this package also reference AdamE.Firebase.iOS.Core for Firebase app initialization.

Official Firebase documentation comes first

These packages are thin .NET bindings over the official Firebase Apple SDKs.

Use the official Firebase documentation as the starting point for:

  • Firebase configuration and platform setup
  • feature usage and behavioral guidance
  • troubleshooting and best practices

These bindings primarily:

Supported target frameworks

This package is intended for Apple platform TFMs such as:

  • net9.0-ios
  • net10.0-ios
  • net9.0-maccatalyst
  • net10.0-maccatalyst

When multi-targeting, condition the package reference so it only restores for Apple targets.

<ItemGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios' Or $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">
  <PackageReference Include="AdamE.Firebase.iOS.CloudMessaging" Version="12.7.0" />
</ItemGroup>

Installation

dotnet add package AdamE.Firebase.iOS.CloudMessaging

Basic usage

This package does not itself perform Firebase app initialization; call Firebase.Core.App.Configure() from the app before using Firebase feature APIs. Follow the official Firebase and Apple documentation for APNs registration and notification permissions.

using System;
using Firebase.CloudMessaging;
using Firebase.Core;

App.Configure();

var messaging = Messaging.SharedInstance;
messaging.AutoInitEnabled = true;

messaging.FetchToken((fcmToken, error) =>
{
    if (error is not null)
    {
        Console.WriteLine(error.LocalizedDescription);
        return;
    }

    Console.WriteLine(fcmToken);
});

messaging.Subscribe("news");

Common companion packages

  • AdamE.Firebase.iOS.Core - Firebase app initialization.
  • AdamE.Firebase.iOS.Installations - package metadata references Firebase Installations for underlying Firebase identity support.
  • AdamE.Firebase.iOS.Analytics - commonly used when Cloud Messaging analytics and notification engagement reporting are needed.

Firebase app configuration

Firebase apps commonly require app-specific configuration from your own Firebase project, such as GoogleService-Info.plist.

Keep app-specific Firebase configuration in application projects, not in reusable library projects.

If the official Firebase docs for this feature require additional setup, follow those docs first.

Package versioning rules (important)

Because Firebase Apple SDKs are packaged as native xcframeworks and distributed here through NuGet, consumers should explicitly pin package versions.

Due to packaging differences between CocoaPods and NuGet, it is highly recommended that applications follow these rules:

  1. Keep the MAJOR.MINOR version aligned across all Firebase packages in the app, for example 12.6.*.*.
  2. Then use the latest available PATCH.REVISION for each individual package.

Example:

<ItemGroup>
  <PackageReference Include="AdamE.Firebase.iOS.Core" Version="12.7.0" />
  <PackageReference Include="AdamE.Firebase.iOS.Auth" Version="12.7.0" />
  <PackageReference Include="AdamE.Firebase.iOS.CloudFirestore" Version="12.7.0" />
</ItemGroup>

Avoid mixing mismatched Firebase package lines such as 12.6.x.x with 12.5.x.x, or 12.x.x.x with 11.x.x.x. Doing so can lead to native dependency conflicts, duplicate symbols, runtime failures, or other undefined behavior.

Notes on native dependency conflicts

Google and Firebase Apple SDKs share native dependencies. Avoid mixing multiple unrelated binding packages that embed overlapping Google/Firebase native SDK binaries in the same app unless you are certain they are compatible.

API surface notes

The public namespace is Firebase.CloudMessaging. API names closely mirror the native Firebase Cloud Messaging SDK surface and expose Apple-native concepts such as NSData, NSDictionary, NSError, and notification extension types.

Repository / support

Support the project

Keeping Firebase Apple bindings current for .NET requires ongoing work across SDK updates, native dependency changes, and API surface maintenance.

If this package is valuable in your app or organization, sponsorship helps support continued maintenance and updates.

Product Compatible and additional computed target framework versions.
.NET net9.0-ios18.0 is compatible.  net9.0-maccatalyst18.0 is compatible.  net10.0-ios was computed.  net10.0-ios26.0 is compatible.  net10.0-maccatalyst was computed.  net10.0-maccatalyst26.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on AdamE.Firebase.iOS.CloudMessaging:

Package Downloads
Plugin.Firebase.CloudMessaging

The plugin includes cross-platform APIs for Firebase CloudMessaging.

Plugin.FirebasePushNotifications

Receive and handle firebase push notifications in .NET MAUI apps

LocalNotifications

A cross platform plugin for displaying local notifications.

Shaunebu.MAUI.FirebasePushNotifications

A lightweight and modern Firebase Cloud Messaging (FCM) push notification manager for .NET MAUI. Provides easy setup, token handling, permission management, background notifications, topic subscriptions, and platform-optimized callbacks for Android and iOS.

Plugin.BetterFirebasePushNotification

Package Description

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on AdamE.Firebase.iOS.CloudMessaging:

Repository Stars
TobiasBuchholz/Plugin.Firebase
Wrapper around the native Android and iOS Firebase Xamarin SDKs
Version Downloads Last Updated
12.7.0 0 4/19/2026
12.6.0 46 4/18/2026
12.5.0.4 29,833 12/24/2025
12.5.0.3 228 12/24/2025
12.5.0.2 219 12/24/2025
12.5.0.1 1,845 12/14/2025
12.5.0 831 12/11/2025
12.4.0 4,415 10/30/2025
12.3.0 6,204 9/21/2025
12.2.0 325 9/20/2025
12.1.0 371 9/19/2025
12.0.0 1,169 9/12/2025
11.15.0 1,078 9/12/2025
11.14.0 872 9/7/2025
11.13.0 247 9/7/2025
11.12.0 218 9/6/2025
11.11.0 241 9/6/2025
11.10.0.2 1,052 8/31/2025
11.10.0.1 286 8/30/2025
11.10.0 60,902 4/2/2025
Loading failed