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 vào dự án Apple nếu bạn chưa thực hiện. Nếu không có ứng dụng Apple, bạn có thể tải một ứng dụng mẫu xuống.
Đề xuất: Để tự động nhận nhật ký chuỗi khối nhằm hiểu rõ các 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.
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 dự án Firebase mới, hãy bật Google Analytics trong quy trình tạo dự án.
Xin lưu ý rằng nhật ký chuỗi khối có sẵn cho tất cả nền tảng Apple mà Crashlytics hỗ trợ, ngoại trừ watchOS.
Bước 1: Thêm SDK Crashlytics vào ứng dụng
Sử dụng Trình quản lý gói Swift để cài đặt và quản lý các phần phụ thuộc Firebase.
- Trong Xcode, khi dự án ứng dụng đang mở, hãy chuyển đến File > Add Packages (Tệp > Thêm gói).
- Khi được nhắc, hãy thêm kho lưu trữ SDK của các nền tảng Apple Firebase:
- Chọn thư viện Crashlytics.
- Để tận dụng nhật ký đường dẫn, hãy thêm SDK Firebase cho Google Analytics vào ứng dụng của bạn. Đảm bảo rằng Google Analytics đã được bật trong dự án Firebase.
- Thêm cờ
-ObjC
vào phần Other Linker Flags (Cờ trình liên kết khác) trong phần cài đặt bản dựng của mục tiêu. - (Chỉ dành cho macOS) Trong
Info.plist
, hãy thêm khoáNSApplicationCrashOnExceptions
và đặt khoá này thànhYES
. - Khi hoàn tất, Xcode sẽ tự động bắt đầu phân giải và tải các phần phụ thuộc xuống ở chế độ nền.
https://github.com/firebase/firebase-ios-sdk.git
Tiếp theo, hãy định cấu hình mô-đun Firebase:
Nhập mô-đun Firebase trong cấu trúc
App
hoặcUIApplicationDelegate
:Swift
import Firebase
Objective-C
@import Firebase;
Định cấu hình một thực thể dùng chung
FirebaseApp
, thường là trong phương thứcapplication(_:didFinishLaunchingWithOptions:)
của uỷ quyền ứng dụng:Swift
// Use the Firebase library to configure APIs. FirebaseApp.configure()
Objective-C
// Use the Firebase library to configure APIs. [FIRApp configure];
Bước 2: Thiết lập Xcode để tự động tải các tệp dSYM lên
Để tạo báo cáo sự cố mà con người có thể đọc được, Crashlytics cần có các tệp biểu tượng gỡ lỗi (dSYM) của dự án. Các bước sau đây mô tả cách định cấu hình Xcode để tự động tạo dSYM, xử lý và tải các tệp lên bất cứ khi nào bạn tạo ứng dụng.
Mở không gian làm việc Xcode của dự án, sau đó chọn tệp dự án trong trình điều hướng bên trái.
Trong danh sách TARGETS (MỤC TIÊU), hãy chọn mục tiêu bản dựng chính.
Nhấp vào thẻ Build Settings (Cài đặt bản dựng), sau đó hoàn tất các bước sau để Xcode tạo dSYM cho các bản dựng của bạn.
Nhấp vào Tất cả, sau đó tìm
debug information format
.Đặt Debug Information Format (Định dạng thông tin gỡ lỗi) thành
DWARF with dSYM File
cho tất cả các loại bản dựng.
Nhấp vào thẻ Build Phases (Giai đoạn xây dựng), sau đó hoàn tất các bước sau để Xcode có thể xử lý dSYM và tải các tệp lên.
Nhấp vào
> New Run Script Phase (Giai đoạn tập lệnh chạy mới).Đảm bảo giai đoạn Run Script (Chạy tập lệnh) mới này là giai đoạn bản dựng cuối cùng của dự án; nếu không, Crashlytics sẽ không thể xử lý đúng cách các dSYM.
Mở rộng phần Run Script (Chạy tập lệnh) mới.
Trong trường tập lệnh (nằm trong nhãn Shell), hãy thêm tập lệnh chạy sau.
Tập lệnh này xử lý các tệp dSYM của dự án và tải các tệp đó lên Crashlytics.
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
Trong phần Input Files (Tệp đầu vào), hãy thêm đường dẫn cho vị trí của các tệp sau:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
Để biết thêm thông tin chi tiết về tệp dSYM và Crashlytics (bao gồm cả cách tải tệp dSYM lên theo cách thủ công), hãy truy cập vào bài viết Nhận báo cáo sự cố đã gỡ rối mã nguồn.
Bước 3: Buộc xảy ra sự cố thử nghiệm để hoàn tất việc 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 của bảng điều khiển Firebase, bạn cần buộc một sự cố kiểm thử.
Thêm mã vào ứng dụng mà bạn có thể dùng để buộc xảy ra sự cố kiểm thử.
Bạn có thể sử dụng mã sau để thêm một nút vào ứng dụng. Khi nhấn vào nút này, ứng dụng sẽ gặp sự cố. Nút này có nhãn "Test Crash" (Kiểm thử sự cố).
SwiftUI
Button("Crash") { fatalError("Crash was triggered") }
UIKit
Swift
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let button = UIButton(type: .roundedRect) button.frame = CGRect(x: 20, y: 50, width: 100, height: 30) button.setTitle("Test Crash", for: []) button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside) view.addSubview(button) } @IBAction func crashButtonTapped(_ sender: AnyObject) { let numbers = [0] let _ = numbers[1] } }
Objective-C
#import "ViewController.h" @implementation ViewController ‐ (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(20, 50, 100, 30); [button setTitle:@"Test Crash" forState:UIControlStateNormal]; [button addTarget:self action:@selector(crashButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } ‐ (IBAction)crashButtonTapped:(id)sender { @[][1]; } @end
Tạo và chạy ứng dụng trong Xcode khi trình gỡ lỗi Xcode bị ngắt kết nối.
Nhấp vào
Tạo rồi chạy giao thức hiện tại để tạo ứng dụng trên một thiết bị kiểm thử hoặc trình mô phỏng.Chờ cho đến khi ứng dụng của bạn đang chạy, sau đó nhấp vào Crashlytics.
Dừng chạy giao thức hoặc hành động để đóng thực thể ban đầu của ứng dụng. Thực thể ban đầu này bao gồm trình gỡ lỗi can thiệp vào
Buộc sự cố kiểm thử xảy ra để gửi báo cáo sự cố đầu tiên của ứng dụng:
Mở ứng dụng trên màn hình chính của thiết bị kiểm thử hoặc trình mô phỏng.
Trong ứng dụng, hãy nhấn vào nút "Test Crash" (Kiểm thử sự cố) mà bạn đã thêm bằng mã ở trên.
Sau khi ứng dụng gặp sự cố, hãy chạy lại ứng dụng đó từ Xcode để ứng dụng có thể gửi báo cáo sự cố đến Firebase.
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 bạn đã làm mới bảng điều khiển và vẫn không thấy sự cố kiểm thử sau 5 phút, hãy bật tính năng ghi nhật ký gỡ lỗi để xem ứng dụng của bạn có 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 Crashlytics để xem và điều tra tất cả báo cáo và số liệu thống kê của bạn.
Các bước tiếp theo
- Tuỳ chỉnh chế độ thiết lập báo cáo sự cố bằng cách thêm tính năng báo cáo tuỳ chọn, nhật ký, khoá và tính năng theo dõi lỗi không nghiêm trọng.