Hello @Nancy Vo (WICLOUD CORPORATION) ,
I am facing an issue while integrating Firebase Crashlytics into a .NET 10 / .NET MAUI 10 application using Plugin.Firebase 4.0.0.
Background
I successfully configured Firebase Crashlytics in one .NET MAUI application using the same configuration, and crash reports are being received correctly in the Firebase Crashlytics dashboard.
However, when I apply the same configuration to another MAUI application that uses a different Firebase project, Crashlytics does not receive the crash reports.
Configuration verified
For the second application, I have verified the following:
- The application has a unique
ApplicationId / iOS Bundle ID.
The correct GoogleService-Info.plist from the second Firebase project is included.
GoogleService-Info.plist is configured as a BundleResource.
The plist contains the required <Link>GoogleService-Info.plist</Link> configuration.
CrossFirebase.Initialize(CreateCrossFirebaseSettings()) is called from WillFinishLaunching.
Crashlytics collection is enabled.
The application has been cleaned and rebuilt.
Firebase Crashlytics currently shows:
“App detected. Waiting for a crash to happen.”
Startup crash caused by recommended linker configuration
According to the recommended configuration, I added the following to the .csproj:
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">
<_ExportSymbolsExplicitly>false</_ExportSymbolsExplicitly>
</PropertyGroup>
<ItemGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">
<_ReferencesLinkerFlags Include="-u __mh_execute_header" />
</ItemGroup>
There is an additional important observation regarding this issue:
When running the application in Debug mode, the application launches and runs successfully even with these linker settings.
However, when I create an IPA with the same linker configuration and install/run it through BrowserStack, the application crashes during startup.
The application crashes before I can reach the application UI, so I cannot reproduce the issue from within the application or capture the exception through normal application logging.
Because the crash occurs in the IPA/Release scenario, I currently do not have the actual exception or stack trace from the application.
When I remove the two linker configuration sections, the IPA launches successfully, but Firebase Crashlytics still remains in the state “App detected. Waiting for a crash to happen.”
This makes the issue particularly difficult to diagnose because Debug works, while the IPA/Release build crashes only when these linker settings are enabled.
Questions
Could you please help investigate the following?
- Why do the
_ExportSymbolsExplicitly and _ReferencesLinkerFlags settings cause a startup crash specifically in the IPA/Release build?
- Why does the application run successfully in Debug mode with these settings but crash when the IPA is created and executed through BrowserStack?
- Are these linker settings still required for .NET 10 / MAUI 10 with Plugin.Firebase 4.0.0?
- Is there an alternative configuration for iOS that allows Firebase Crashlytics to work without adding these linker settings?
- Could this be related to changes in the .NET 10 / MAUI 10 iOS linker/trimmer/AOT build process?
- Since the IPA crashes during startup before I can capture an application-level exception, could you please advise how I can obtain the native iOS crash log or linker/AOT diagnostic information needed to identify the root cause?
The main issue is:
Without the linker settings: the application launches successfully, but Firebase Crashlytics does not receive crashes.
With the linker settings: Debug works, but the IPA/Release build crashes during startup when executed through BrowserStack, preventing me from obtaining the application exception.
Could you please advise on the correct configuration for .NET 10 / MAUI 10 + Plugin.Firebase 4.0.0 + Firebase Crashlytics on iOS?
Thank you.