Bắt đầu sử dụng Firebase Crashlytics

Hướng dẫn bắt đầu nhanh này mô tả cách thiết lập Firebase Crashlytics trong ứng dụng của bạn bằng Firebase Crashlytics SDK để bạn có thể nhận được sự cố toàn diện trong bảng điều khiển của Firebase.

Để thiết lập Crashlytics, bạn cần thực hiện các thao tác cả trong bảng điều khiển của Firebase và IDE của bạn (như thêm tệp cấu hình Firebase và Crashlytics SDK). Để hoàn tất quá trình thiết lập, bạn cần xác định sự cố thử nghiệm để gửi báo cáo sự cố cho Firebase.

Trước khi bắt đầu

  1. Thêm Firebase nếu bạn chưa thêm đối với dự án Unity. Nếu không có dự án Unity, bạn có thể tải ứng dụng mẫu.

  2. Đề xuất: Để tự động nhận nhật ký breadcrumb (tập hợp liên kết phân cấp) để tìm hiểu hành động của người dùng dẫn đến sự cố, sự cố không nghiêm trọng hoặc sự kiện ANR, bạn cần bật Google Analytics trong dự án Firebase của mình.

    • Nếu dự án Firebase hiện tại của bạn không có Google Analytics , bạn có thể bật Google Analytics từ Thẻ Tích hợp trong > Cài đặt dự án trong bảng điều khiển của Firebase.

    • Nếu bạn đang tạo một dự án Firebase mới, hãy bật Google Analytics trong quy trình tạo dự án.

Bước 1: Thêm Crashlytics SDK vào ứng dụng của bạn

Xin lưu ý rằng khi đăng ký dự án Unity với dự án Firebase, bạn có thể đã tải Firebase Unity SDK xuống và thêm các gói được mô tả trong các bước sau đây.

  1. Tải SDK Unity của Firebase xuống, sau đó giải nén SDK ở nơi nào đó thuận tiện. Firebase Unity SDK không dành riêng cho từng nền tảng.

  2. Trong dự án Unity đang mở, hãy chuyển đến Thành phần > Nhập gói > Gói tuỳ chỉnh.

  3. Trong SDK đã giải nén, hãy chọn để nhập Crashlytics SDK (FirebaseCrashlytics.unitypackage).

    Để tận dụng nhật ký breadcrumb (tập hợp liên kết phân cấp) Ngoài ra, hãy thêm Firebase SDK cho Google Analytics vào ứng dụng của bạn (FirebaseAnalytics.unitypackage). Đảm bảo rằng Google Analytics đang bật trong dự án Firebase của bạn.

  4. Trong cửa sổ Import Unity Package (Nhập gói Unity), hãy nhấp vào Import (Nhập).

Bước 2: Khởi chạy Crashlytics

  1. Tạo một tập lệnh C# mới, sau đó thêm tập lệnh đó vào GameObject trong cảnh.

    1. Mở cảnh đầu tiên của bạn, sau đó tạo một GameObject trống có tên CrashlyticsInitializer.

    2. Nhấp vào Add Component (Thêm thành phần) trong Inspector (Trình kiểm tra) cho đối tượng mới.

    3. Chọn tập lệnh CrashlyticsInit để thêm vào Đối tượng CrashlyticsInitializer.

  2. Khởi chạy Crashlytics trong phương thức Start của tập lệnh:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    // Import Firebase and Crashlytics
    using Firebase;
    using Firebase.Crashlytics;
    
    public class CrashlyticsInit : MonoBehaviour {
        // Use this for initialization
        void Start () {
            // Initialize Firebase
            Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
                var dependencyStatus = task.Result;
                if (dependencyStatus == Firebase.DependencyStatus.Available)
                {
                    // Create and hold a reference to your FirebaseApp,
                    // where app is a Firebase.FirebaseApp property of your application class.
                    // Crashlytics will use the DefaultInstance, as well;
                    // this ensures that Crashlytics is initialized.
                    Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
    
                    // When this property is set to true, Crashlytics will report all
                    // uncaught exceptions as fatal events. This is the recommended behavior.
                    Crashlytics.ReportUncaughtExceptionsAsFatal = true;
    
                    // Set a flag here for indicating that your project is ready to use Firebase.
                }
                else
                {
                    UnityEngine.Debug.LogError(System.String.Format(
                      "Could not resolve all Firebase dependencies: {0}",dependencyStatus));
                    // Firebase Unity SDK is not safe to use here.
                }
            });
        }
    
      // Update is called once per frame
      void Update()
        // ...
    }

Bước 3: (chỉ dành cho Android) Thiết lập để tải biểu tượng lên

Bước này chỉ bắt buộc đối với các ứng dụng Android sử dụng IL2CPP.

  • Đối với ứng dụng Android sử dụng phần phụ trợ tập lệnh Mono của Unity, các bước này không cần thực hiện cần thiết.

  • Đối với ứng dụng nền tảng của Apple, bạn không cần thực hiện các bước này vì Firebase Unity Trình bổ trợ Trình chỉnh sửa tự động định cấu hình dự án Xcode của bạn để tải biểu tượng lên.

SDK Unity 8.6.1+ của Crashlytics tự động đưa báo cáo sự cố NDK, cho phép Crashlytics tự động báo cáo Unity IL2CPP gặp sự cố trên Android. Tuy nhiên, để xem dấu vết ngăn xếp được thay thế bằng biểu tượng cho thư viện gốc sự cố trong trang tổng quan Crashlytics, bạn phải tải thông tin về biểu tượng lên tại thời gian xây dựng bằng cách sử dụng Giao diện dòng lệnh (CLI) của Firebase.

Để thiết lập tính năng tải biểu tượng lên, hãy làm theo hướng dẫn để cài đặt Giao diện dòng lệnh (CLI) của Firebase.

Nếu bạn đã cài đặt CLI, hãy đảm bảo cập nhật lên phiên bản mới nhất.

Bước 4: Tạo dự án và tải biểu tượng lên

iOS+ (nền tảng của Apple)

  1. Từ hộp thoại Build Settings (Cài đặt bản dựng), hãy xuất dự án của bạn sang không gian làm việc trên Xcode.

  2. Xây dựng ứng dụng của bạn.

    Đối với các nền tảng của Apple, trình bổ trợ Trình chỉnh sửa Unity của Firebase sẽ tự động định cấu hình dự án Xcode của bạn để tạo và tải lên Tệp biểu tượng tương thích Crashlytics với máy chủ Firebase cho từng bản dựng.

Android

  1. Từ hộp thoại Build Settings (Cài đặt bản dựng), hãy thực hiện một trong những thao tác sau:

    • Xuất sang một dự án Android Studio để xây dựng dự án; hoặc

    • Tạo APK trực tiếp trong Trình chỉnh sửa Unity.
      Trước khi tạo, hãy nhớ đánh dấu vào hộp Create mỹ.zip chọn trong hộp thoại Build Settings (Cài đặt bản dựng).

  2. Sau khi bản dựng hoàn tất, hãy tạo một biểu tượng tương thích với Crashlytics rồi tải tệp đó lên máy chủ Firebase bằng cách chạy lệnh sau Lệnh CLI của Firebase:

    firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
    • FIREBASE_APP_ID: Mã ứng dụng Android trên Firebase của bạn (không phải tên gói)
      Ví dụ về mã ứng dụng Android trên Firebase: 1:567383003300:android:17104a2ced0c9b9b

    • PATH/TO/SYMBOLS: Đường dẫn đến tệp biểu tượng được tạo bởi Giao diện dòng lệnh (CLI)

      • Đã xuất sang một dự án Android Studio — PATH/TO/SYMBOLS là thư mục unityLibrary/symbols Mã này được tạo trong thư mục gốc của dự án đã xuất sau khi bạn tạo ứng dụng thông qua Gradle hoặc Android Studio.

      • Tạo APK trực tiếp từ bên trong Unity — PATH/TO/SYMBOLS là đường dẫn của tệp biểu tượng được nén được tạo trong thư mục gốc của dự án khi bản dựng của bạn hoàn tất (ví dụ: myproject/myapp-1.0-v100.symbols.zip).

    Xem các tuỳ chọn nâng cao để sử dụng Lệnh CLI của Firebase để tạo và tải tệp biểu tượng lên

    Gắn cờ Nội dung mô tả
    --generator=csym

    Sử dụng trình tạo tệp biểu tượng cSYM cũ thay vì trình tạo Breakpad mặc định

    Không nên sử dụng. Bạn nên dùng chế độ cài đặt mặc định Trình tạo tệp biểu tượng Breakpad.

    --generator=breakpad

    Sử dụng trình tạo tệp biểu tượng Breakpad

    Lưu ý: Chế độ mặc định để tạo tệp biểu tượng là Breakpad. Chỉ sử dụng cờ này nếu bạn đã thêm symbolGenerator { csym() } trong cấu hình bản dựng và bạn muốn ghi đè để sử dụng Thay vào đó, breakpad.

    --dry-run

    Tạo tệp biểu tượng nhưng không tải chúng lên

    Cờ này hữu ích nếu bạn muốn kiểm tra nội dung của tệp được gửi đi.

    --debug Cung cấp thông tin gỡ lỗi bổ sung

Bước 5: Xác định sự cố thử nghiệm để hoàn tất quá trình thiết lập

Để hoàn tất việc thiết lập Crashlytics và xem dữ liệu ban đầu trong Trang tổng quan Crashlytics trong bảng điều khiển của Firebase, bạn cần buộc thử nghiệm sự cố.

  1. Tìm một GameObject hiện có, rồi thêm vào đó tập lệnh sau. Chiến dịch này tập lệnh sẽ gây ra sự cố thử nghiệm vài giây sau khi bạn chạy ứng dụng.

    using System;
    using UnityEngine;
    
    public class CrashlyticsTester : MonoBehaviour {
    
        int updatesBeforeException;
    
        // Use this for initialization
        void Start () {
          updatesBeforeException = 0;
        }
    
        // Update is called once per frame
        void Update()
        {
            // Call the exception-throwing method here so that it's run
            // every frame update
            throwExceptionEvery60Updates();
        }
    
        // A method that tests your Crashlytics implementation by throwing an
        // exception every 60 frame updates. You should see reports in the
        // Firebase console a few minutes after running your app with this method.
        void throwExceptionEvery60Updates()
        {
            if (updatesBeforeException > 0)
            {
                updatesBeforeException--;
            }
            else
            {
                // Set the counter to 60 updates
                updatesBeforeException = 60;
    
                // Throw an exception to test your Crashlytics implementation
                throw new System.Exception("test exception please ignore");
            }
        }
    }
    
  2. Tạo ứng dụng và tải thông tin biểu tượng lên sau khi hoàn tất bản dựng.

    • iOS+: Trình bổ trợ Trình chỉnh sửa Unity của Firebase tự động định cấu hình Dự án Xcode để tải tệp biểu tượng của bạn lên.

    • Android: Đối với các ứng dụng Android sử dụng IL2CPP, hãy chạy Lệnh crashlytics:symbols:upload của Firebase CLI để tải .

  3. Chạy ứng dụng. Khi ứng dụng của bạn đang chạy, hãy xem nhật ký thiết bị và đợi ngoại lệ để kích hoạt từ CrashlyticsTester.

    • iOS+: Xem nhật ký trong ngăn dưới cùng của Xcode.

    • Android: Xem nhật ký bằng cách chạy lệnh sau trong cửa sổ dòng lệnh: adb logcat.

  4. Chuyển đến trang tổng quan Crashlytics của bảng điều khiển của Firebase để xem sự cố thử nghiệm của bạn.

    Nếu đã làm mới bảng điều khiển mà vẫn không thấy sự cố thử nghiệm sau 5 phút, bật tính năng ghi nhật ký gỡ lỗi để xem liệu ứng dụng của bạn có đang gửi báo cáo sự cố hay không.


Chỉ vậy thôi! Crashlytics hiện đang theo dõi ứng dụng của bạn để phát hiện sự cố. Truy cập vào trang tổng quan Crashlytics để xem và tìm hiểu tất cả báo cáo và thống kê của bạn.

Các bước tiếp theo

  • (Nên dùng) Đối với các ứng dụng Android sử dụng IL2CPP, bạn có thể nhận trợ giúp gỡ lỗi các sự cố do lỗi bộ nhớ gốc gây ra bằng cách đang thu thập Báo cáo GWP-ASan. Những lỗi liên quan đến bộ nhớ này có thể có liên quan đến tình trạng hỏng bộ nhớ trong ứng dụng của bạn, đây là nguyên nhân hàng đầu gây ra lỗ hổng bảo mật ứng dụng. Để tận dụng tính năng gỡ lỗi này, hãy đảm bảo ứng dụng của bạn sử dụng Crashlytics SDK mới nhất cho Unity (phiên bản 10.7.0 trở lên) và đã GWP-ASan được bật rõ ràng (yêu cầu bạn phải sửa đổi Tệp kê khai ứng dụng Android).
  • Tích hợp với Google Play để bạn có thể lọc trực tiếp các báo cáo sự cố của ứng dụng Android theo dõi trên Google Play trong Trang tổng quan Crashlytics. Điều này cho phép bạn tập trung tốt hơn vào trang tổng quan của mình vào các bản dựng cụ thể.