在 Crashlytics 信息中心内获取易于理解的崩溃报告


iOS+(Apple 平台)

对于使用 Crashlytics Unity SDK 8.2.0+ 的 Apple 平台应用,Firebase Unity 编辑器插件可自动将您的 Xcode 项目配置为上传符号。下载最新版本。

Android

对于 Android 应用,Crashlytics Unity SDK 8.6.1 及更高版本会自动提供 NDK 崩溃报告,让 Crashlytics 可以在 Android 设备上自动报告 Unity IL2CPP 崩溃问题。不过,如需在 Crashlytics 信息中心内查看原生库崩溃的经过符号化解析的堆栈轨迹,您必须在构建时使用 Firebase CLI 上传符号信息。

  1. 确保您使用的是 Crashlytics Unity SDK v8.6.1 或更高版本。下载最新版本。

  2. 设置您的环境和项目以进行符号上传:

    1. 按照说明安装 Firebase CLI

      如果您已安装 CLI,请务必将其更新为最新版本

    2. (仅适用于使用 Android API 级别 30 及更高级别的应用)更新应用的 AndroidManifest.xml 模板以停用指针标记:

      1. 依次勾选 Android Player Settings(Android 播放器设置)> Publishing Settings(发布设置)> Build(构建)> Custom Main Manifest(自定义主清单)对应的复选框。

      2. 打开位于 Assets/Plugins/Android/AndroidManifest.xml 的清单模板。

      3. (仅适用于使用 8.8.0 之前的 SDK 版本的应用)将以下属性添加到应用标记:<application android:allowNativeHeapPointerTagging="false" ... />

  3. 构建您的项目并上传符号。

    每当创建发布 build 或创建您希望在 Firebase 控制台中查看符号化解析后的堆栈轨迹的 build 时,都需要完成这些步骤。

    1. 在“Build Settings”(构建设置)对话框中,执行以下操作之一:

      • 导出到 Android Studio 项目以构建您的项目;或

      • 直接通过 Unity 编辑器构建 APK。
        在构建之前,请确保在“Build Settings(构建设置)”对话框中选中 Create symbols.zip(创建 symbols.zip)复选框。

    2. 构建完成后,生成与 Crashlytics 兼容的符号文件,然后运行以下 Firebase CLI 命令将其上传到 Firebase 服务器:

      firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
      • FIREBASE_APP_ID:您的 Firebase Android 应用 ID(而不是您的软件包名称)
        示例 Firebase Android 应用 ID:1:567383003300:android:17104a2ced0c9b9b

      • PATH/TO/SYMBOLS:CLI 生成的符号文件的路径

        • 导出到 Android Studio 项目 - PATH/TO/SYMBOLSunityLibrary/symbols 目录,在您通过 Gradle 或 Android Studio 构建应用后,系统会在导出的项目根目录中创建该目录。

        • 直接在 Unity 中构建 APK - PATH/TO/SYMBOLS 是构建完成时在项目根目录中生成的压缩符号文件的路径(例如:myproject/myapp-1.0-v100.symbols.zip)。

      查看可使用 Firebase CLI 命令生成和上传符号文件的高级选项

      标志 说明
      --generator=csym

      使用旧版 cSYM 符号文件生成器,而不是默认的 Breakpad 生成器

      不推荐使用。我们建议您使用默认的 Breakpad 符号文件生成器。

      --generator=breakpad

      使用 Breakpad 符号文件生成器

      请注意,用于生成符号文件的默认选项是 Breakpad。 只有当您已经在 build 配置中添加了 symbolGenerator { csym() },并且想要替换它以改用 Breakpad 时,才需要使用此标志。

      --dry-run

      生成符号文件,但不将其上传

      如果您要检查所发送文件的内容,此标志将非常有用。

      --debug 提供额外的调试信息