在Xamarin iOS中使用Firebase Crashlytics

在Xamarin iOS中使用Firebase Crashlytics,firebase,xamarin.ios,crashlytics,Firebase,Xamarin.ios,Crashlytics,任何人都可以帮助我如何使用Xamarin.Firebase.iOS.Crashlytics nuget软件包。我的代码中随机出现SIGSEGV代码错误,我无法找出实际问题。 我已经搜索了很多关于如何在Xamarin iOS中实现Crashlytics的内容,但是我没有找到任何内容。 我已经遵循了下面两个链接中给出的步骤,但是我只能在这两个链接的帮助下在xcode中实现Crashlytics。 在Xamarin中实现Firebase Crashlytics需要执行的步骤很少 首先,您必须在Xcod

任何人都可以帮助我如何使用Xamarin.Firebase.iOS.Crashlytics nuget软件包。我的代码中随机出现SIGSEGV代码错误,我无法找出实际问题。 我已经搜索了很多关于如何在Xamarin iOS中实现Crashlytics的内容,但是我没有找到任何内容。 我已经遵循了下面两个链接中给出的步骤,但是我只能在这两个链接的帮助下在xcode中实现Crashlytics。
在Xamarin中实现Firebase Crashlytics需要执行的步骤很少

首先,您必须在Xcode中创建一个具有相同绑定标识符的虚拟项目

您可以遵循这一点,在Xcode中实现Crashlytics

现在对于Xamarin,使用相同的Bundle标识符,并在info.plist文件中添加以下行

<key>Fabric</key>
<dict>
<key>APIKey</key>
<string>Your api key</string>
<key>Kits</key>
<array>
  <dict>
    <key>KitInfo</key>
    <dict/>
    <key>KitName</key>
    <string>Crashlytics</string>
  </dict>
</array>
</dict>

我不确定你是否已经解决了这个问题,但我会尝试一下,因为这篇文章几乎把我带到了终点线。可能还有其他人在寻找如何做到这一点

截至2018年底,Crashlytics将从Fabric转向Firebase,这导致许多旧帖子不再适用

要使nuGet软件包正常工作,您需要执行以下操作:

前往并创建一个项目。然后添加一个应用程序输入“bundle ID”,这需要与您在xamarin应用程序中拥有的相同。nick和App Store ID是可选的

您现在将获得一个GoogleService-Info.plist文件,请下载此文件。现在是棘手的部分。要初始化firebase应用程序,您需要创建一个虚拟xCode项目,该项目与您的项目具有相同的绑定标识符:

创建一个新的xCode项目,并按照

请记住在插入POD后使用.xcworkspace文件打开项目

在firebase控制台中的设备上编译并运行此应用程序,如果一切正常,您将有望看到一些反应

现在,要将其添加到visualStudio xamarin应用程序中,请首先将GoogleService-Info.plist添加到项目中,并将构建操作更改为“捆绑资源” 然后将Xamarin.Firebase.iOS.Core和Xamarin.Firebase.iOS.Crashlytics包添加到iOS项目中

快到了,只剩下两件事要做了

在FinishedLaunching函数的AppDelegate.cs文件中,添加:

Firebase.Core.App.Configure();
Crashlytics.Configure();
Fabric.Fabric.SharedSdk.Debug = true; // To enable debugging 
还要记住将两个名称空间Firebase.Core和Firebase.Crashlytics添加到文件的顶部

最后一步是在没有调试器的情况下运行应用程序,因为调试器将吃掉所有错误

应该是这样

有关crashlytics nuGet的更多信息,请参阅

编辑


2019-08-03:更新了NuGet入门链接

请查看评论

对于iOS:

  • 将GoogleService-Info.plist文件添加到应用程序项目中

  • 通过右键单击/构建操作,将GoogleService-Info.plist构建操作行为设置为捆绑资源

  • 将Xamarin.Firebase.iOS.Core NuGet添加到您的iOS项目:

  • 在应用程序中的某个位置添加以下代码行,通常在AppDelegate的FinishedLaunching方法中(不要忘记导入Firebase.Core和Firebase.Crashlytics命名空间):

对于Android:

  • 确保在Firebase开发人员控制台中设置了项目

  • 下载项目文件并将其放入Xamarin.Android项目的文件夹中

  • 添加Xamarin.Android.Crashlytics NuGet包:

  • 重新启动IDE

  • 将google-services.json添加到您的Xamarin.Android应用程序项目中

  • 将构建操作google-services.json设置为GoogleServicesJson

  • 创建一个名为com.crashlytics.android.build_id的字符串资源。该值可以是您想要唯一标识特定构建的任何值。 清理并重建您的解决方案

      Fabric.Fabric.With(this, new Crashlytics.Crashlytics());
      Crashlytics.Crashlytics.HandleManagedExceptions();
    
我最近写了一篇博客,介绍如何将Xamarin应用程序与Firebase Crashlytics集成,详细介绍了如何配置Xamarin应用程序,可在此处找到:


嗨,这里是Crashlytics的保罗。仅供参考,我们现在不正式支持Xamarin。嗨,Paul。如果Xamarin中不支持Crashlytics。那么Xamarin.Firebase.Crashlytics nuget包做什么呢??我可以在Xamarin Nuget Manager中看到两个软件包,一个用于Firebase崩溃报告,另一个用于Crashlytics?@buser,Xamarin团队@MikalaiDaronin你能告诉我步骤吗?我无法在Xamarin iOS中实现它project@AnshumanSingh这应该会有所帮助。除了添加、
GoogleService Info.plist
和几行代码外,没有其他内容。无法使用上述代码初始化Crashlytics。如果有人已经解决了这个问题,请分享这些步骤。作为提问者,我想在Firebase Crashlytics上查看我的崩溃,而不是在Fabric dashboard上(很快将不受支持)GitHub链接不起作用,您可能需要更新!!现在应该更新上游回购在没有留下痕迹的情况下进行了一些重组。制作死链接:(此评论已过时。2021年,您需要添加的nuget名为
Xamarin.iOS.Firebase.Crashlytics
,它依赖于上述
Xamarin.Firebase.iOS.Core
nuget(因此无需单独添加)还有
Crashlytics.Configure()
方法不再存在,也不会被调用。链接的文章也已过时,因为不再存在Fabric命名空间,导致崩溃的测试方法也不存在。代码示例无法使用。@masiton感谢您的更新,我们将研究它并更新答案和我的博客。谢谢。如果您喜欢,请查看我的问题是,我真的很难让crashlytics在Xamarin中工作。这里的表单(iOS):
   App.Configure ();
   Crashlytics.Configure ();
  Fabric.Fabric.With(this, new Crashlytics.Crashlytics());
  Crashlytics.Crashlytics.HandleManagedExceptions();