崩溃和错误

本部分帮助您了解哪些故障阻碍了用户使用应用,并将修复信息传递给开发团队。

崩溃与错误的区别

崩溃 — 应用的异常终止。例如,用户打开商品卡片,应用意外关闭。

错误 — 应用可以继续运行的问题。例如,商品卡片未加载,但用户可以返回目录。如果开发人员配置了相关消息的发送,此类信息将出现在 AppMetrica 中。

这些只是示例:跟踪哪些错误由团队根据应用的任务决定。

如何开始收集

请开发人员检查崩溃收集,并与他们一起配置对产品重要的错误发送。在您这边,请描述需要跟踪的情况:用户试图做什么、出了什么问题以及这如何阻碍完成操作。

例如,对于在线商店,您可以单独跟踪商品卡片未加载或无法将商品添加到购物车的情况。与开发人员商定错误的名称和描述,以便之后在报告中识别它们。

如何获得清晰的故障描述

有时应用会发送一条故障消息,其中看不到问题具体发生在哪里。为了让 AppMetrica 能够解码此类消息,开发人员会上传与应用一起准备的专用文件。它们有助于找到错误位置并了解其原因。

Android 和 iOS 需要不同的文件,但任务相同:使故障信息可用于调查。分析师或产品经理无需自行准备这些文件。

重要

如果报告中出现故障描述未解码的警告,请将其连同应用版本一起传递给开发人员。请他们检查所需文件是否已上传,并在准备新版本时配置其上传。

开发人员连接故障收集并上传用于解码的文件。这有助于获得清晰的问题描述并找到其原因。

面向开发人员:收集崩溃和错误、调试文件及验证

下载开发人员说明(TXT):crashes-developer-zh.txt

如何配置收集

AppMetrica SDK 中提供了崩溃收集。请检查您平台的集成和传输设置。对于自定义错误消息,开发人员会添加对相应 SDK 方法的调用。

例如,如果应用处理了失败的操作并向用户显示了消息,开发人员可以传输错误以供后续分析。发送哪些情况由应用团队决定。

Android、iOS、Flutter、React Native 和 Unity 方法的链接见错误发送说明。

用于解码 Android 和 iOS 故障的文件

请使用与发生故障的应用构建版本匹配的文件。各平台的要求和上传方法如下。

Android:mapping 文件和调试符号

AppMetrica 允许您收集有关原生和 Java 崩溃的信息。您可以在崩溃和错误报告中分析它们。另请参阅在不同平台上发送错误部分。

为了减小应用大小,代码会在发布构建期间被优化。

如果在构建 Android 应用时压缩并混淆了代码,则崩溃信息会以混淆形式传输。为了从此类崩溃日志中提取数据进行分析,AppMetrica 会在服务器端执行反混淆。

为此,请将 mapping 文件或 SO 文件的调试符号上传到 AppMetrica:在应用构建时自动上传,或通过网页界面手动上传。

要发送文件,请连接 AppMetrica Gradle Plugin。

备注

如果您使用 ProGuard 或 R8,请上传 mapping 文件。如果您不压缩或混淆代码,则无需连接插件。

了解更多
iOS:dSYM 文件

iOS 上的崩溃信息以符号化形式发送。从此类崩溃日志中很难提取数据进行分析。为了使崩溃日志可分析,请将 dSYM 文件上传到 AppMetrica。

要将 dSYM 文件上传到 AppMetrica SDK,内置了命令行工具 helper。对于使用 fastlane 的构建,支持上传插件。借助它们,您可以配置在应用构建时自动上传 dSYM 文件。

请仅为您想要发布的应用发送 dSYM 文件。

构建时自动上传

使用 fastlane 构建应用:

  1. 安装 appmetrica fastlane 插件:

    fastlane add_plugin appmetrica
    

    有关添加插件的更多信息,请参阅 fastlane 文档。

  2. 在 fastlane/Fastfile 文件中添加以下内容:

    lane :release do
    # Your actions before.
    gym(
    workspace: "MyApp.xcworkspace",
    configuration: "Release",
    scheme: "MyApp",
    export_method: "app-store"        # Pass the correct export_method.
    )
    upload_symbols_to_appmetrica(post_api_key: "Post API key")
    # Your actions after.
    end
    

    Post API key 可以在 AppMetrica 的设置部分获取。它用于标识您的应用。

    重要

    构建应用时使用带导出的 gym action。如果您使用 Xcode 构建应用,应用在上传到 App Store Connect 后会被重新编译。那么构建时生成的 dSYM 文件将无法使用。

  3. 在 Xcode 中使用 helper 工具添加 dSYM 文件上传步骤。helper 工具从 3.8.0 版本开始包含在 AppMetrica SDK 中。它位于 SDK 归档中。helper 工具参考。

    1. 在 Xcode 中打开项目。

    2. 在项目导航器中选择项目文件。

    3. 在 Targets 块中选择您的应用。

    4. 打开 Build Phases 选项卡。

    5. 点击 + 按钮 → New Run Script Phase。

    6. 在 Type a script 文本字段中添加:

      if [ -d "${PODS_ROOT}/AppMetricaCrashes" ]; then
      HELPER_PATH=`find "${PODS_ROOT}/AppMetricaCrashes" -name "helper"`
      if [ -x  "${HELPER_PATH}" ]; then
      "${HELPER_PATH}" auto --post-api-key="Post API key"&
      else
      echo "AppMetricaСrash helper was not found"
      fi
      fi
      

    备注

    auto 模式使用 CONFIGURATION 环境变量。如果构建使用 Debug 配置,则不会上传 dSYM 文件。

上传缺失的 dSYM 文件

如果在应用构建时未上传 dSYM 文件,崩溃报告中将显示未符号化崩溃的警告。

警告

要符号化它们,请上传缺失的 dSYM 文件。缺失文件列表可以在 AppMetrica 中您应用的设置 → 崩溃页面查看。

缺失的 dSYM 文件可以通过以下方式上传:

  • 使用 fastlane
  • 通过网页界面
  • 使用 helper
使用 fastlane
  1. 安装 appmetrica fastlane 插件:

    fastlane add_plugin appmetrica
    

    有关添加插件的更多信息,请参阅 fastlane 文档。

  2. 在 fastlane/Fastfile 文件中添加以下内容:

    lane :refresh_dsyms do
    download_dsyms
    upload_symbols_to_appmetrica(post_api_key: "Post API key")
    clean_build_artifacts
    end
    

    在 download_dsyms action 中,您可以指定所需的应用版本和构建号:

    ...
    download_dsyms(version: "1.0.0", build_number: "345")
    ...
    

    有关 download_dsyms action 的更多信息,请参阅 fastlane 文档。

通过网页界面
  1. 找到包含 dSYM 文件的所需归档:

    通过 Xcode Organizer
    1. 在 Xcode 界面中点击 Window → Organizer。
    2. 在 Archives 选项卡中选择所需的应用版本。
    3. 点击 Download dSYM 按钮。

    插图

    通过 App Store Connect
    1. 在 iTunes Connect 界面中打开 Activity 页面。
    2. 在 All Builds 选项卡中选择所需的构建号。
    3. 点击 Download dSYM。

    插图

    您可以使用构建时生成的 dSYM 文件。

  2. 在 AppMetrica 界面中,从左侧菜单进入应用设置。

  3. 打开 崩溃 → iOS 选项卡。

  4. 点击选择文件按钮,上传包含 app.dSYM 或 app 目录的 ZIP 归档。

使用 helper

要使用插件上传,需要连接 3.8.0 或更高版本的 AppMetrica SDK。要将缺失的 dSYM 文件上传到 AppMetrica,请在终端中运行命令:

helper -k <post-api-key> <file_path>

file_path 是 dSYM 文件或包含它们的文件夹的列表。

helper 工具参考。

helper 工具参考

备注

helper 工具从 3.8.0 版本开始包含在 AppMetrica SDK 中。它位于 SDK 归档中。

Helper 是一个命令行工具,允许您将 dSYM 文件上传到 AppMetrica。

$ helper [auto] [-o | --package-output-path=<path>] [-v | --verbose]
         [--version] -k <post-api-key> | --post-api-key=<key> [file ...]

参数

参数

描述

auto

自动上传模式。在此模式下,helper 使用以下变量:CONFIGURATION — 用于确定配置。如果构建使用 Debug 配置,则不会上传 dSYM 文件。DWARF_DSYM_FOLDER_PATH — 用于查找 dSYM 文件。它通常取决于 BUILT_PRODUCTS_DIR 变量。AMA_POST_API_KEY — Post API key。如果指定,在自动模式下可以使用短命令 helper auto&。

-k

Post API key。可以在 AppMetrica 的设置部分获取。它用于标识您的应用。

-o

存储临时文件的文件夹路径。默认使用系统文件夹。

-v

启用附加信息的显示。

--version

输出版本。

file

dSYM 文件或包含它们的文件夹的列表。默认使用本地工作文件夹。

& 允许您并行运行 helper,而不会阻塞整个项目的构建。示例命令:

helper auto --post-api-key="Post API key"&
了解更多

Post API key 可以在 AppMetrica 的设置部分获取。它用于标识您的应用。

如何检查结果

  1. 在测试环境中复现受控的错误或故障。
  2. 打开崩溃和错误报告,找到测试版应用的数据。
  3. 检查消息、设备和调用堆栈 — 与故障相关的函数序列。
  4. 如果堆栈不可读,请检查是否存在专门针对此构建的调试文件。

崩溃按调用堆栈分组;错误分组取决于发送方法。详情见崩溃和错误文档。

在不同平台上发送错误

如何处理报告

  1. 选择时间段。打开崩溃和错误报告。例如,发布新版本后,查看自其发布以来的时间段。
  2. 评估规模。比较故障数量和发生故障的设备数量。单个设备上的频繁故障和影响许多设备的问题需要不同的评估。
  3. 查找发生条件。查看应用版本、操作系统和设备。打开所需的组 — 其中包含相关的故障案例。
  4. 研究故障前的操作。打开具体案例的记录,点击"查看会话事件"。如果收集了相应的事件,历史记录将有助于还原用户的操作。
  5. 将问题传递给开发人员。指明应用版本、问题规模和已知的用户步骤。任务链接可以添加到组评论中。

评估优先级时,还要考虑对场景的影响:例如,无法下单可能比很少使用的屏幕上的错误更重要。故障的技术原因由开发人员确定。

如何检查修复

发布修复后,检查问题是否在新版应用中发生。在分析中区分版本:只要用户还在使用旧版本,旧版本中的故障可能会继续到达。

可以关闭已修复的组,以将其与当前问题区分开。如果故障出现在之前未观察到的版本中,该组将重新打开。

要通过电子邮件了解问题,请设置电子邮件通知。

如果您没有找到所需答案,可以通过反馈表单提交您的问题。 请尽可能详细地描述问题。 如果可能,请附上截图。

联系支持 为文档提出改进建议
上一篇
下一篇