FireForNet.Firebase.RemoteConfig.Apple 1.0.1-preview.22

Prefix Reserved
This is a prerelease version of FireForNet.Firebase.RemoteConfig.Apple.
dotnet add package FireForNet.Firebase.RemoteConfig.Apple --version 1.0.1-preview.22
                    
NuGet\Install-Package FireForNet.Firebase.RemoteConfig.Apple -Version 1.0.1-preview.22
                    
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="FireForNet.Firebase.RemoteConfig.Apple" Version="1.0.1-preview.22" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FireForNet.Firebase.RemoteConfig.Apple" Version="1.0.1-preview.22" />
                    
Directory.Packages.props
<PackageReference Include="FireForNet.Firebase.RemoteConfig.Apple" />
                    
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 FireForNet.Firebase.RemoteConfig.Apple --version 1.0.1-preview.22
                    
#r "nuget: FireForNet.Firebase.RemoteConfig.Apple, 1.0.1-preview.22"
                    
#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 FireForNet.Firebase.RemoteConfig.Apple@1.0.1-preview.22
                    
#: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=FireForNet.Firebase.RemoteConfig.Apple&version=1.0.1-preview.22&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=FireForNet.Firebase.RemoteConfig.Apple&version=1.0.1-preview.22&prerelease
                    
Install as a Cake Tool

FireForNet.Firebase.RemoteConfig.Apple

Apple-native platform integration for FireForNet Firebase Remote Config (iOS, macOS, Mac Catalyst).

About FireForNet

FireForNet is a platform-agnostic, .NET-native Firebase Client SDK developed as part of the Circuids ecosystem. It provides a consistent Firebase client development experience across .NET application environments, while allowing platform-specific implementations where Firebase requires them.

About This Package

This package provides Apple-specific functionality for Firebase Remote Config. It multi-targets net10.0-ios, net10.0-macos, and net10.0-maccatalyst with no MAUI dependency.

It provides:

  • Persistence — SQLite-backed storage (via FireForNet.Firebase.RemoteConfig.Sqlite) for the Remote Config containers, settings, and metadata, resolving the database path from the platform-appropriate application data directory.
  • Realtime lifecycle monitoring — an Apple lifecycle monitor that disconnects the realtime stream on background/sleep/lock and reconnects on foreground/wake/unlock.

Usage

services.AddFirebase(new FirebaseOptions
{
    ApiKey = "your-api-key",
    ProjectId = "your-project"
})
.AddFirebaseRemoteConfig()
.UseApple(options =>
{
    options.DatabaseFileName = "firefornet-remoteconfig.db3";
    options.EnableLifecycleMonitor = true;
});

MAUI apps on Apple platforms should normally call UseMaui() from FireForNet.Firebase.RemoteConfig.Maui-chained flows, which delegate to this package on the Apple TFMs.

Installations chaining

UseApple() chains Installations.Apple.UseApple() when the installation store is still the in-memory default, so Remote Config's installation ID is persisted alongside the config data. To use a custom installation store, register it before calling UseApple().

Lifecycle monitor

The lifecycle monitor maps Apple system events to IRealtimeLifecycleMonitor:

  • iOS — UIApplication.DidEnterBackgroundNotification (background) and UIApplication.WillEnterForegroundNotification (foreground) via NSNotificationCenter. When the app is backgrounded the OS suspends it, killing the network stream; on return to the foreground the stream reconnects.
  • macOS / Mac Catalyst — Darwin notifications via CFNotificationCenter.GetDarwinNotifyCenter():
    • com.apple.system.sleep / com.apple.screenIsLocked → background
    • com.apple.system.wake / com.apple.screenIsUnlocked → foreground (deduplicated within 2 seconds)

Darwin notifications are C-level CoreFoundation APIs available on both net10.0-macos and net10.0-maccatalyst without AppKit or IOKit dependencies. The main run loop must be running for delivery — guaranteed for AppKit and Mac Catalyst apps. Console-only apps without a run loop should set EnableLifecycleMonitor = false.

Set EnableLifecycleMonitor = false to disable, or register a custom IRealtimeLifecycleMonitor after calling UseApple() to override it.

Path resolution

  • iOS — the app's Documents directory inside the sandbox container.
  • macOS (native) — ~/Library/Application Support/FireForNet.
  • Mac Catalyst — the app container's Application Support directory.

Persistence

SQLite persistence is provided by FireForNet.Firebase.RemoteConfig.Sqlite (platform-agnostic). This package adds only Apple path resolution and lifecycle monitoring on top.

Minimum OS versions

TFM Minimum
net10.0-ios iOS 15.0
net10.0-macos macOS 10.15 (Catalina)
net10.0-maccatalyst Mac Catalyst 15.0 (macOS 12 Monterey)

No entitlements required

This package does not require any Apple entitlements. SQLite file access is within the app's sandbox container (iOS / Mac Catalyst) or the user's Application Support directory (macOS). Darwin notifications are C-level CoreFoundation APIs below the sandbox layer — observing system-level Darwin notifications is always permitted, even in the strictest sandbox. UIApplication notifications on iOS are standard lifecycle events with no entitlement requirement.

Run loop requirement (macOS / Mac Catalyst)

The Darwin notification center requires the main run loop to be running in a common mode for notifications to be delivered. This is guaranteed for AppKit apps (NSApplication.Main()) and Mac Catalyst apps (UIApplication.Main()). Console-only macOS apps without a run loop should set EnableLifecycleMonitor = false.

Platform / Framework Support

Platform / Framework Status
iOS Preview
macOS Preview
Mac Catalyst Preview

Documentation

Comprehensive FireForNet documentation is being prepared for the Release Candidate stage.

Project Status

FireForNet is currently available as a Preview release and is approaching its Release Candidate milestone. APIs, package structure, and implementation details may continue to evolve before RC and GA.

The RC milestone will be followed by an extensive cross-platform validation and testing phase before the first GA release.

All FireForNet packages are part of a coordinated release train and share the same version number.

Source Availability

FireForNet is currently being developed in a private source repository during the Preview development phase. The source will be made publicly available as the project approaches its open-source phase, with the public repository established from the appropriate release milestone.

Until then, NuGet Preview packages provide the public distribution channel for evaluating and using FireForNet.

License

This package is licensed under the Apache-2.0 license.

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

NuGet packages (1)

Showing the top 1 NuGet packages that depend on FireForNet.Firebase.RemoteConfig.Apple:

Package Downloads
FireForNet.Firebase.RemoteConfig.Maui

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1-preview.22 48 9/27/2026
1.0.1-preview.21 49 9/22/2026
1.0.1-preview.20 54 9/18/2026

v1.0.1-preview.22
- Synchronized package version with the preview.22 release.

v1.0.1-preview.21
- No functional changes; synchronized with the framework-free MAUI integration sweep.

v1.0.1-preview.20
- Synchronized package version with the preview.20 release.

v1.0.1-preview.19
- Synchronized package version with the preview.19 release.

v1.0.1-preview.18
- Synchronized package version with the preview.18 release.

v1.0.1-preview.17
- Synchronized package version with the preview.17 release.

v1.0.1-preview.16
- Synchronized package version with the preview.16 release.

v1.0.1-preview.15
- Synchronized package version with the preview.15 release.

v1.0.1-preview.14
- Synchronized package version with the preview.14 release.

v1.0.1-preview.13
- Synchronized package version with the preview.13 release.

v1.0.1-preview.12
- Synchronized package version with the preview.12 release.