You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin集成Crashlytics遇构建ID缺失及iOS空引用问题求助

Xamarin集成Firebase Crashlytics的问题排查与解决

问题概述

开发Xamarin应用时集成Firebase Crashlytics,先后遇到Android端初始化报错和iOS端空引用崩溃问题,以下是问题详情及Android端解决方法、iOS端排查建议:


Android端初始问题与解决

问题现象

应用运行时抛出异常:

Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.IllegalStateException: The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.

完整错误日志:

[FirebaseApp] Device unlocked: initializing all Firebase APIs for app [DEFAULT]
[FirebaseCrashlytics] Initializing Firebase Crashlytics 18.3.2 for com.lorem.ipsum
[FirebaseCrashlytics] .
[FirebaseCrashlytics] .     |  | 
[FirebaseCrashlytics] .     |  |
[FirebaseCrashlytics] .     |  |
[FirebaseCrashlytics] .   \ |  | /
[FirebaseCrashlytics] .    \    /
[FirebaseCrashlytics] .     \  /
[FirebaseCrashlytics] .      \/
[FirebaseCrashlytics] .
[FirebaseCrashlytics] The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.
[FirebaseCrashlytics] .
[FirebaseCrashlytics] .      /\
[FirebaseCrashlytics] .     /  \
[FirebaseCrashlytics] .    /    \
[FirebaseCrashlytics] .   / |  | \
[FirebaseCrashlytics] .     |  |
[FirebaseCrashlytics] .     |  |
[FirebaseCrashlytics] .     |  |
[FirebaseCrashlytics] .
[AndroidRuntime] Shutting down VM
**Java.Lang.RuntimeException:** 'Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.IllegalStateException: The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.'

尝试过的无效操作

  • 在app.Android/Resources/values/strings.xml手动添加Crashlytics相关配置:
    <?xml version="1.0" encoding="utf-8" ?>
    <resources>
        <string name="com.crashlytics.android.build_id">2.0</string>
        <string name="com.google.firebase.crashlytics.mapping_file_id">none</string>
        <string name="google_app_id">The "current_key" from the google-servicies.json</string>
    </resources>
    
  • 确认google-services.json放置位置正确、内容有效,且已安装所有相关NuGet包。

解决方法

在Android项目的.csproj文件中添加以下配置,确保构建工具能正确识别google-services.json:

<GoogleServicesJson Include="google-services.json" />

补充:该Android项目包名与已集成Crashlytics的旧Android Studio项目一致。


iOS端当前问题与排查建议

问题现象

调用Crashlytics初始化代码时应用崩溃,抛出空引用异常:

Crashlytics.SharedInstance.Init();
Crashlytics.SharedInstance.SetCrashlyticsCollectionEnabled(true);
Crashlytics.SharedInstance.SendUnsentReports();

错误日志:

[0:] An error occurred: 'Object reference not set to an instance of an object.'. Callstack: '  at diarioDeTeruelIOS.iOS.AppDelegate.FinishedLaunching (UIKit.UIApplication app, Foundation.NSDictionary options) [0x00021] in C:\App.iOS\AppDelegate.cs:31

已检查csproj、plist文件及Crashlytics、Firebase.Core相关NuGet包,问题未解决。

补充:iOS项目为全新项目。

排查与解决建议

  • 验证Firebase配置文件导入
    从Firebase控制台下载GoogleService-Info.plist,确保文件添加到iOS项目根目录,且在csproj中设置Build Action为BundleResource,可检查csproj中是否有如下配置:

    <BundleResource Include="GoogleService-Info.plist" />
    
  • 调整初始化顺序
    在AppDelegate.FinishedLaunching中,必须先初始化Firebase Core,再初始化Crashlytics,修改代码如下:

    Firebase.Core.App.Configure();
    Crashlytics.SharedInstance.Init();
    Crashlytics.SharedInstance.SetCrashlyticsCollectionEnabled(true);
    Crashlytics.SharedInstance.SendUnsentReports();
    
  • 确保NuGet包版本一致
    检查Xamarin.Firebase.iOS.Core和Xamarin.Firebase.iOS.Crashlytics的版本是否完全匹配,版本不兼容会导致初始化异常。

  • 配置Info.plist
    若手动初始化Firebase,需在Info.plist中添加如下配置,避免代理冲突:

    <key>FirebaseAppDelegateProxyEnabled</key>
    <false/>
    
  • 清理重建项目
    删除iOS项目的bin、obj文件夹,重启Visual Studio后重新生成解决方案,排除缓存干扰。

内容的提问来源于stack exchange,提问作者Lorem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 13:17:17