在Xamarin iOS中使用Firebase Crashlytics

时间:2018-08-06 10:07:33

标签: firebase xamarin.ios crashlytics

任何人都可以帮助我如何为Xamarin iOS使用Xamarin.Firebase.iOS.Crashlytics nuget软件包。我在随机位置的代码中收到SIGSEGV代码错误,但无法找出实际问题。 搜索了很多有关如何在Xamarin iOS中实现Crashlytics的信息,但是我找不到任何东西。 遵循以下两个链接中给出的步骤,但是我只能借助这两个链接在xcode中实现Crashlytics。 Link 1 Link 2

3 个答案:

答案 0 :(得分:1)

不确定您是否已解决问题,但由于这篇文章几乎将我带到了终点线,我将试一试。可能还有其他人在寻找如何做到这一点。

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

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

转到firebase console并创建一个项目。然后添加一个输入“捆绑ID”的应用程序,该名称必须与您的xamarin应用程序中的名称相同。昵称和App Store ID是可选的。

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

制作一个新的xCode项目,并按照firebase中的说明进行操作

请记住在安装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的更多信息,请获取github page

答案 1 :(得分:0)

对于iOS:

  • 将GoogleService-Info.plist文件添加到您的应用程序项目中。
  • 通过右键单击/构建操作,将GoogleService-Info.plist构建操作行为设置为捆绑资源。
  • 将Xamarin.Firebase.iOS.Core NuGet添加到您的iOS项目:https://www.nuget.org/packages/Xamarin.Firebase.iOS.Crashlytics/
  • 将以下代码行添加到应用程序中的某些位置,通常是在AppDelegate的FinishedLaunching方法中(不要忘记导入Firebase.Core和Firebase.Crashlytics命名空间):

     App.Configure ();
     Crashlytics.Configure ();
    

对于Android:

  • 确保在Firebase开发人员控制台中设置了一个项目。
  • 下载项目的文件,并将其放置在Xamarin.Android项目的文件夹中。
  • 添加Xamarin.Android.Crashlytics NuGet程序包:https://www.nuget.org/packages/Xamarin.Android.Crashlytics/
  • 重新启动您的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 Apps:

https://medium.com/@hakimgulamali88/firebase-crashlytics-with-xamarin-5421089bb561

答案 2 :(得分:-2)

要在Xamarin中实施Firebase Crashlytics,只需执行几个步骤。

首先,您必须使用相同的包标识符在Xcode中创建一个虚拟项目。

您可以遵循此https://fabric.io/kits/ios/crashlytics/install,以在Xcode中实现Crashlytics。

对于Xamarin,现在使用相同的捆绑包标识符,并在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>

现在在AppDelegate中导入Fabric和Crashlytics,然后使用以下方法初始化Fabric实例:

Fabric.with([Crashlytics.self])