【问题标题】:How do I integrate Firebase.Crashlytics on my Xamarin.Forms Project如何在我的 Xamarin.Forms 项目中集成 Firebase.Crashlytics
【发布时间】:2020-10-19 21:48:10
【问题描述】:

谁能帮助我将 Firebase.Crashlytics 集成到适用于 iOS 的 Xamarin.Forms 项目中。 它在 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();
    

更新

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

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

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

【问题讨论】:

  • 上次我检查(不久前)您无法使用 Crashlytics 获取 C# 堆栈跟踪,从而使错误报告非常难以解决。您是否考虑过使用应用中心?
  • 您好克劳迪奥,感谢您回答 OP 的问题。如果您无法获得堆栈跟踪,那么 Crashlytics / iOS 的目的是什么?它有什么作用?

标签: c# xamarin.forms xamarin.ios crashlytics


【解决方案1】:

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

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

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

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

您可以在此处找到新的官方 nuget 包,但它仍处于预览阶段:

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

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

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

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

也许我遗漏了什么,但基本上,仅此而已。

【讨论】:

  • 嗨,有没有使用新 nuget 的教程?
  • 您只需要添加 nuget 并立即使用它。如果您想测试一切设置是否正常并且工作正常,您可以从 try-catch 块外部抛出异常并转到 firebase 控制台查看结果,但根据我的经验,可能需要一些时间才能看到记录的第一个异常。如果您想知道如何记录某些内容,可以查看来自@Google 的家伙的官方指南。您可以使用此处描述的相同方法(在更改大小写后,像往常一样):firebase.google.com/docs/crashlytics/…
  • 但是这个库不是跨平台的吗?它仅适用于Android?因为不可能将它安装在 .net 标准共享库上。那么我们需要配合DI去共享库中使用吗?
【解决方案2】:

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" }
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-15
  • 1970-01-01
  • 2014-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多