Phần hướng dẫn nhanh này mô tả cách thiết lập Firebase Crashlytics trong ứng dụng bằng SDK Firebase Crashlytics để bạn có thể nhận được báo cáo sự cố toàn diện trong bảng điều khiển Firebase.
Việc thiết lập Crashlytics yêu cầu các tác vụ trong cả bảng điều khiển Firebase và IDE (chẳng hạn như thêm tệp cấu hình Firebase và SDK Crashlytics). Để hoàn tất quá trình thiết lập, bạn cần buộc một sự cố thử nghiệm để gửi báo cáo sự cố đầu tiên đến Firebase.
Trước khi bắt đầu
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.
Đề 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 chưa bật Google Analytics, bạn có thể bật Google Analytics từ thẻ Tích hợp của
trong bảng điều khiển > Cài đặt dự ánFirebase. 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 SDK Crashlytics vào ứng dụng
Xin lưu ý rằng khi đăng ký dự án Unity với dự án Firebase, bạn có thể đã tải SDK Unity Firebase xuống và thêm các gói được mô tả trong các bước sau đây.
Tải SDK Unity Firebase xuống, sau đó giải nén SDK ở nơi thuận tiện. SDK Firebase Unity không dành riêng cho từng nền tảng.
Trong dự án Unity đang mở, hãy chuyển đến Assets (Tài sản) > Import Package (Nhập gói) > Custom Package (Gói tuỳ chỉnh).
Từ SDK đã giải nén, hãy chọn nhập SDK Crashlytics (
FirebaseCrashlytics.unitypackage
).Để tận dụng nhật ký breadcrumb (tập hợp liên kết phân cấp) đồng thời 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.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
Tạo một tập lệnh C# mới, sau đó thêm tập lệnh đó vào
GameObject
trong cảnh.Mở cảnh đầu tiên, sau đó tạo một
GameObject
trống có tên làCrashlyticsInitializer
.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.
Chọn tập lệnh
CrashlyticsInit
để thêm tập lệnh đó vào đối tượngCrashlyticsInitializer
.
Khởi động 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 các ứng dụng Android sử dụng phần phụ trợ tập lệnh Mono của Unity, bạn không cần thực hiện các bước này.
Đối với các ứng dụng trên nền tảng Apple, bạn không cần thực hiện các bước này vì 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 để tải các biểu tượng lên.
SDK Unity 8.6.1+ của Crashlytics tự động đưa tính năng 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 lên thông tin biểu tượng tại thời gian xây dựng bằng cách sử dụng CLI 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 CLI 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)
Trong hộp thoại Build Settings (Cài đặt bản dựng), hãy xuất dự án của bạn sang một không gian làm việc Xcode.
Tạo ứng dụng.
Đố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
Trong hộp thoại Build Settings (Cài đặt bản dựng), hãy làm theo một trong những cách sau:
Xuất sang một dự án Android Studio để tạo dự án; hoặc
Tạo tệp APK ngay 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).
Sau khi bản dựng hoàn tất, hãy tạo một tệp biểu tượng tương thích với Crashlytics và tải tệp đó lên máy chủ Firebase bằng cách chạy lệnh CLI Firebase sau:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID: Mã ứng dụng Firebase cho Android (không phải tên gói)
Ví dụ về mã ứng dụng Firebase cho Android:1:567383003300:android:17104a2ced0c9b9b
PATH/TO/SYMBOLS: Đường dẫn đến tệp biểu tượng được tạo bởi CLI
Đã xuất sang dự án Android Studio – PATH/TO/SYMBOLS là thư mục
unityLibrary/symbols
, đượ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 Firebase để tạo và tải tệp biểu tượng lên
Cờ Nội dung mô tả --generator=csym
Sử dụng trình tạo tệp ký hiệu cSYM cũ thay vì trình tạo Breakpad mặc định
Không nên sử dụng. Bạn nên sử 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
Xin lưu ý rằng 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
trong cấu hình bản dựng và bạn muốn ghi đè để sử dụng Thay vào đó, breakpad.symbolGenerator { csym() }
--dry-run
Tạo tệp biểu tượng nhưng không tải lên
Cờ này sẽ hữu ích nếu bạn muốn kiểm tra nội dung của các tệp được gửi.
--debug
Cung cấp thêm thông tin gỡ lỗi
Bước 5: Buộc sự cố kiểm thử để hoàn tất việc thiết lập
Để hoàn tất quá trình thiết lập Crashlytics và xem dữ liệu ban đầu trong Trang tổng quan Crashlytics của bảng điều khiển Firebase, bạn cần buộc kiểm thử sự cố.
Tìm một
GameObject
hiện có, sau đó thêm tập lệnh sau vàoGameObject
đó. Tập lệnh này sẽ gây ra sự cố kiểm thử 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"); } } }
Tạo ứng dụng và tải thông tin biểu tượng lên sau khi bản dựng hoàn tất.
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 Firebase CLI
crashlytics:symbols:upload
để tải lên .
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 trở lên: 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 dòng lệnh:
adb logcat
.
Chuyển đến trang tổng quan Crashlytics của bảng điều khiển Firebase để xem sự cố kiểm thử.
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.
Vậy là xong! 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 của 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 SDK Crashlytics mới nhất dành 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).
- Tuỳ chỉnh chế độ thiết lập báo cáo sự cố bằng cách thêm báo cáo chọn tham gia, nhật ký, khoá và theo dõi các lỗi không nghiêm trọng.
- Tích hợp với Google Play để bạn có thể lọc báo cáo sự cố của ứng dụng Android theo kênh Google Play ngay 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ể.