跳到主內容

向服務報告錯誤

如何跟蹤使用者遇到的錯誤。

雖然人們總是努力建立沒有錯誤的應用程式,但錯誤總是會時不時地出現。由於有缺陷的應用程式會導致使用者和客戶不滿意,因此瞭解使用者遇到錯誤的頻率以及錯誤的發生位置非常重要。這樣,您可以優先處理影響最大的錯誤並努力修復它們。

您如何確定使用者遇到錯誤的頻率?每當發生錯誤時,建立一個包含發生錯誤和相關堆疊跟蹤的報告。然後,您可以將報告發送到錯誤跟蹤服務,例如 BugsnagDatadogFirebase CrashlyticsRollbar 或 Sentry。

錯誤跟蹤服務會彙總使用者經歷的所有崩潰並將它們分組在一起。這使您可以瞭解應用程式失敗的頻率以及使用者遇到麻煩的位置。

在本教程中,學習如何使用以下步驟將錯誤報告給 Sentry 崩潰報告服務

  1. 從 Sentry 獲取 DSN。
  2. 匯入 Flutter Sentry 包
  3. 初始化 Sentry SDK
  4. 以程式設計方式捕獲錯誤

1. 從 Sentry 獲取 DSN

#

在向 Sentry 報告錯誤之前,您需要一個“DSN”來唯一標識您的應用程式與 Sentry.io 服務。

要獲取 DSN,請執行以下步驟

  1. 在 Sentry 上建立一個帳戶.
  2. 登入帳戶。
  3. 建立一個新的 Flutter 專案。
  4. 複製包含 DSN 的程式碼片段。

2. 匯入 Sentry 包

#

sentry_flutter 包匯入到應用程式中。sentry 包使向 Sentry 錯誤跟蹤服務傳送錯誤報告更容易。

要將 sentry_flutter 包新增為依賴項,請執行 flutter pub add

flutter pub add sentry_flutter

3. 初始化 Sentry SDK

#

初始化 SDK 以自動捕獲不同的未處理錯誤

dart
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';

Future<void> main() async {
  await SentryFlutter.init(
    (options) => options.dsn = 'https://example@sentry.io/example',
    appRunner: () => runApp(const MyApp()),
  );
}

或者,您可以使用 dart-define 標籤將 DSN 傳遞給 Flutter

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

這能給我帶來什麼?

#

這對於 Sentry 捕獲 Dart 和本機層中的未處理錯誤來說就足夠了。這包括 iOS 上的 Swift、Objective-C、C 和 C++,以及 Android 上的 Java、Kotlin、C 和 C++。

4. 以程式設計方式捕獲錯誤

#

除了 Sentry 透過匯入和初始化 SDK 生成的自動錯誤報告之外,您可以使用 API 向 Sentry 報告錯誤

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

有關更多資訊,請參閱 pub.dev 上的 Sentry API 文件。

瞭解更多

#

關於使用 Sentry SDK 的詳細文件可以在 Sentry 網站 上找到。

完整示例

#

要檢視工作示例,請參閱 Sentry flutter 示例 應用程式。