如何在我的 Xamarin.Forms 项目中集成 Firebase.Crashlytics

Nik*_*hil 5 c# xamarin.ios crashlytics xamarin.forms

任何人都可以帮助我在 iOS 的 Xamarin.Forms 项目上集成 Firebase.Crashlytics。它在 Android 上运行良好,但在 iOS 上我遇到了问题。请注意,我在 iOS 上执行了以下步骤:-

  1. 向我的 iOS 项目添加了 Xamarin.Firebase.iOS.Crashlytics Nuget 包。

  2. 添加了 GoogleService.plist 文件

  3. 为 iOS 做了一个依赖服务

  4. 添加了以下代码来初始化 nuget :-

             Firebase.Core.App.Configure();
             Crashlytics.Configure();
             Fabric.Fabric.SharedSdk.Debug = true;
             Crashlytics.SharedInstance.Crash();
    
    Run Code Online (Sandbox Code Playgroud)

更新

我已经按照下面提到的链接中的所有步骤进行了操作:- https://keithbeattyblog.wordpress.com/2019/06/16/xamarin-forms-adding-google-firebase-crashylitics/ 仍然没有任何效果。

当我按照上述文章中编写的步骤进行操作时,我遇到了由于“Xamarin.Build.Download”NuGet 包而无法构建项目的问题。我还面临无法将解决方案部署到模拟器的问题,因为它不允许我选择模拟器来运行应用程序。

任何帮助,将不胜感激。谢谢!

Gui*_*ard 6

您确定要继续使用旧的 Fabric 实现吗?您必须知道 Fabric Crashlytics 版本已被弃用,对吗?

我们所有人都收到了一封来自 Google 的邮件,通知说:

我们写信通知您,Fabric Crashlytics SDK 现已弃用,并将继续报告您的应用崩溃,直到 2020 年 11 月 15 日。在此日期之后,Fabric Crashlytics SDK 和 Firebase Crashlytics SDK 的测试版将停止发送崩溃报告你的应用程序发生了什么?我们正在用普遍可用的 Firebase Crashlytics SDK 替换 Fabric Crashlytics SDK 和测试版 Firebase Crashlytics SDK。下一步是什么?要继续在 Firebase 控制台中获取崩溃报告,请确保在 2020 年 11 月 15 日之前将您的应用升级到 Firebase Crashlytics SDK 版本 17.0.0+(适用于 Android)、4.0.0+(适用于 iOS)和 6.15.0+(适用于 Unity)。Android

所以一切都会很快改变,你不应该再使用 Fabric 解决方案,尤其是对于新项目。

您可以在此处找到新的官方 nuget 软件包,但它仍处于预览状态:

https://www.nuget.org/packages/Xamarin.Firebase.Crashlytics/117.0.0-preview02

这是添加评论的官方存储库问题:https : //github.com/xamarin/XamarinComponents/issues/956

当您添加这个新包和 google-services.json 时,您需要在旧代码中更改以下内容:

  • 每个CrashLytics.Crashlytics参考将只是FirebaseCrashlytics.
  • 无需初始化,FirebaseCrashlytics.Instance随处可得
  • 要记录异常,您需要使用该RecordException方法而不是旧的LogException
  • SetUserIdentifier更改为SetUserId,并且SetUserName不再存在
  • 没有任何方法可以故意崩溃,所以现在如果你想测试你的实现,你必须简单地抛出任何你想要的异常

也许我错过了一些东西,但基本上,仅此而已。


cah*_*hyo -4

更新Xamarin.Firebase.iOS.Crashlytics至版本4.0.0-beta.7

在你的应用程序委托中只需调用

Firebase.Core.App.Configure();
Firebase.Analytics.Analytics.LogEvent(Firebase.Analytics.EventNamesConstants.SelectContent, new Dictionary<object, object> {
    { Firebase.Analytics.ParameterNamesConstants.ItemId, "hokisit-ios" },
    { Firebase.Analytics.ParameterNamesConstants.ItemName, "Hokisit iOS" }
});
Run Code Online (Sandbox Code Playgroud)