Thank you for reaching out . Based on the error details this is a known iOS build issue related to Firebase iOS native frameworks and Swift module generation, not an Android or MAUI architecture issue.
Recommended Resolution Steps:
Step 1: Ensure Correct Firebase iOS Packages
make sure you have explicitly installed the iOS firebase packages, not only Android.
if your iOS project(.csproj):
<ItemGroup>
<PackageReference Include="Plugin.Firebase.Crashlytics" Version="3.0.0"/>
<PackageReference Include="Plugin.Firebase.Core" Version="3.0.0" />
</ItemGroup>
Installing only plugin.Firebase at shared level is not sufficient for iOS.
Step 2: Clean Nuget Cache (Critical)
Corrupted or partial NuGet restores cause this exact error:
Run the following on both Windows and Mac build host:
dotnet nuget locals all --clear
Then delete:
- bin
- obj
- ~/.nuget/packages/adame.firebase.ios.core
Step 3: Update Xcode & Command Line tools
Firebase iOS SDK requires a compatible Xcode version.
On the Mac:
xcode-select --install
sudo xcode-select --switch /Applications/Xcode.app
Ensure:
- Xcode 14.1 or later
- iOS SDK 16+
Step 4: Rebuild for Device (Not Simulator)
This issue often occurs only on Simulator builds due to missing slices.
Test on a physical iOS device:
dotnet build -t:Run -f net8.0-ios
if it works on device, this confirms a simulator only limitation.
Step 5: Disable Bitcode (if Enabled)
In your iOS project:
<PropertyGroup>
<MtouchEnabledBitcode>false</MtouchEnabledBitcode>
</PropertyGroup>
Firebase does not support Bitcode.
Step 6: Initialize Firebase Correctly in MAUI
Ensure Firebase is initialized only once in MauiProgram.cs:
builder
.UseFirebaseApp()
.UseFirebaseCrashlytics();
Avoid duplicate initialization across multiple projects in multi-program architecture.
Reference:
- https://quic.hkg1.meaqua.org/en-us/dotnet/maui/ios/deployment/?view=net-maui-10.0
- https://github.com/TobiasBuchholz/Plugin.Firebase
Please let us know if you require any further assistance we’re happy to help. If you found this information useful, kindly mark this as "Accept Answer".