FireForNet.Firebase.RemoteConfig.Apple
1.0.1-preview.22
Prefix Reserved
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
<PackageReference Include="FireForNet.Firebase.RemoteConfig.Apple" Version="1.0.1-preview.22" />
<PackageVersion Include="FireForNet.Firebase.RemoteConfig.Apple" Version="1.0.1-preview.22" />
<PackageReference Include="FireForNet.Firebase.RemoteConfig.Apple" />
paket add FireForNet.Firebase.RemoteConfig.Apple --version 1.0.1-preview.22
#r "nuget: FireForNet.Firebase.RemoteConfig.Apple, 1.0.1-preview.22"
#:package FireForNet.Firebase.RemoteConfig.Apple@1.0.1-preview.22
#addin nuget:?package=FireForNet.Firebase.RemoteConfig.Apple&version=1.0.1-preview.22&prerelease
#tool nuget:?package=FireForNet.Firebase.RemoteConfig.Apple&version=1.0.1-preview.22&prerelease
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) andUIApplication.WillEnterForegroundNotification(foreground) viaNSNotificationCenter. 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→ backgroundcom.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 | Versions 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. |
-
net10.0-ios26.0
- FireForNet.Firebase.Installations.Apple (>= 1.0.1-preview.22)
- FireForNet.Firebase.RemoteConfig (>= 1.0.1-preview.22)
- FireForNet.Firebase.RemoteConfig.Sqlite (>= 1.0.1-preview.22)
-
net10.0-maccatalyst26.0
- FireForNet.Firebase.Installations.Apple (>= 1.0.1-preview.22)
- FireForNet.Firebase.RemoteConfig (>= 1.0.1-preview.22)
- FireForNet.Firebase.RemoteConfig.Sqlite (>= 1.0.1-preview.22)
-
net10.0-macos26.0
- FireForNet.Firebase.Installations.Apple (>= 1.0.1-preview.22)
- FireForNet.Firebase.RemoteConfig (>= 1.0.1-preview.22)
- FireForNet.Firebase.RemoteConfig.Sqlite (>= 1.0.1-preview.22)
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.