把报错信息通过服务上传

开发者总是试图创造没有 bug 的应用,但是 bug 还是会时不时地出现。这些 bug 会给用户带来糟糕的体验,所以获知 bug 发生的位置以及出现的频率就显得极为关键了。这样,你就可以根据 bug 的影响程度优先修复它们。

如何确定用户遇到 bug 的频率呢?解决方案是:当异常发生时,生成一份日志,日志中包含发生的异常及相关的堆栈信息。随后,可以将日志发送到异常监控报警平台,比如

Bugsnag、Fabric、Firebase Crashlytics、

Rollbar 或 Sentry。

异常监控报警平台会将上报的崩溃日志异常信息聚合并分组归类,这样就可以知道应用程序出现异常的频率并定位异常发生位置。

这个章节中,你可以通过以下步骤学习如何把异常信息上报给异常监控报警平台 Sentry:

从 Sentry 平台获取 DSN

导入 Sentry package

初始化 Sentry SDK

捕获并上报异常

1. 从 Sentry 平台获取 DSN

#

在向 Sentry 上报异常信息前,需要在 Sentry.io 上获取应用的唯一身份标识 DSN。

根据以下步骤,获取 DSN:

创建 Sentry 账户

登录账户

新建一个 Flutter 工程

复制包含 DSN 的代码片段

2. 导入 Sentry 包

#

导入 sentry_flutter package 到应用中,这个 package 能更方便的将错误报告发送给

Sentry 的错误追踪系统。

运行 flutter pub add 将 sentry_flutter 添加为依赖:

$ flutter pub add sentry_flutter

content_copy

3. 创建 SentryClient

#

初始化 SDK 来自动捕获不同的未处理的错误。

dart

import 'package:flutter/widgets.dart';

import 'package:sentry_flutter/sentry_flutter.dart';

Future main() async {

await SentryFlutter.init(

(options) => options.dsn = 'https://example@sentry.io/example',

appRunner: () => runApp(const MyApp()),

);

}

content_copy

另外,你也可以使用 dart-define 标记将 DSN 传递给 Flutter。

sh

--dart-define SENTRY_DSN=https://example@sentry.io/example

content_copy

这番操作都发生了什么?

#

使用 Sentry 捕获 Dart 和原生中未处理的错误,以上这些操作就足够了。这包括 iOS 上的 Swift、Objective-C、C 和 C++,以及 Android 上的 Java、Kotlin、C 和 C++。

4. 捕获并上报异常

#

除了自动初始化 Sentry SDK 来捕获和上报错误之外,你还可以通过 API 来报告错误:

dart

await Sentry.captureException(exception, stackTrace: stackTrace);

content_copy

更多相关信息,请参阅 pub.dev 上的 Sentry API

文档。

了解更多

#

更多关于使用 Sentry SDK 的文档可以在 其官网 查看。

完整样例

#

查看 Sentry flutter example

示例应用,体验完整流程。

Copyright © 2088 奥术风暴·魔幻网游活动秘典 All Rights Reserved.
友情链接