转到控制台

针对 Unity 的 Firebase Crashlytics API 更改

随着适用于 Unity 的 Firebase Crashlytics 的发布,Firebase 团队正在将开发者使用 Fabric 时依赖的功能引入 Firebase。此举提供了进行一些细微更改的机会,以确保 Firebase Crashlytics API 更直观且更便于开发者使用。

在升级到 Firebase Crashlytics 时,已经使用 Fabric Crashlytics SDK 的开发者可能需要对其代码进行一些细微更改。本指南详细介绍了对此 API 进行的具体更改、更改原因以及需要采取解决方法的实用建议。

Fabric.Crashlytics 现为 Firebase.Crashlytics

我们已将命名空间从 Fabric 更改为 Firebase

Fabric

using Fabric.Crashlytics;

Firebase

using Firebase.Crashlytics;

RecordCustomException 现为 LogException

记录已捕获和处理的自定义非严重异常。

Fabric

Crashlytics.RecordCustomException(string name, string reason, StackTrace stackTrace);
Crashlytics.RecordCustomException(string name, string reason, string stackTraceString);

Firebase

Crashlytics.LogException(Exception ex);

更改的原因

大多数情况下,此函数用于记录 Exception 的实例。您现在可以提供 Exception 的实例,并且 Firebase Crashlytics 会提取它所需的信息,而无需您手动提取“name”、“reason”和“stackTrace”(这会产生多余的代码)。

解决方法

如果您要通过某种方式利用这些参数,而不仅仅是直接提取异常信息,则仍然可以通过在其说明中创建自己的 Exception 子类以及自定义元数据来完成先前的行为。

SetKeyValue 现为 SetCustomKey

设置要与崩溃报告一起发送的任何键值对。重新设置相同的键将更新相应的值。

Fabric

Crashlytics.SetKeyValue(string key, string value);

Firebase

Crashlytics.SetCustomKey(string key, string value);

更改的原因

我们正在重命名此方法,以使其行为更加清晰,并提高与其他 Firebase API 的一致性。

SetUserIdentifier 现为 SetUserId

设置用户标识符以帮助了解哪个用户遇到了崩溃。

Fabric

Crashlytics.SetUserIdentifier(string identifier);

Firebase

Crashlytics.SetUserId(string identifier);

更改的原因

我们正在重命名此方法,以提高与其他 Firebase API 的一致性。此外,它的长度更短;谁不想在输入键时省去一些笔划呢?

移除了 SetUserEmail 和 SetUserName

以前,您可以使用显式方法设置与崩溃相关联的名称或电子邮件。日后,我们将不再明确定义这些内容。

Fabric

Crashlytics.SetUserEmail(string email);
Crashlytics.SetUserName(string name);

更改的原因

Google 致力于保护客户数据,这就要求设计对开发者工具执行相同操作的 API。这些针对特定用户的 API 已被移除,以鼓励使用已生成的不用于识别个人信息的方法来辨别哪个用户受到崩溃的影响。

解决方法

要指定哪个用户遇到了崩溃,首选方法是使用 SetUserId。但是,如果此解决方案不可行,则可以使用 SetCustomKey 实现相同的功能。

移除了 Crash 和 ThrowNonFatal

以前,Crashlytics 提供了两种实用程序方法来抛出异常,以便进行测试。这些方法不会包含在 Firebase Crashlytics 中。

Fabric

Crashlytics.Crash();
Crashlytics.ThrowNonFatal();

更改的原因

适用于 Unity 的 Crashlytics 在许多不同的环境中运行,并且可能发生多种不同类型的崩溃。这些方法未明确指定生成的崩溃是发生在 C# 中还是针对具体平台的原生 SDK 中。

解决方法