強制崩潰來測試您的實施
將程式碼新增到您的應用程式中,您可以使用它來強制測試崩潰。
您可以使用以下程式碼為應用程式新增一個按鈕,按下該按鈕會導致崩潰。該按鈕標記為“測試崩潰”。
斯威夫特使用者介面
Button("Crash") { fatalError("Crash was triggered") }
使用者介面工具包
迅速
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
在 Xcode 中建置並運行您的應用程序,並斷開 Xcode 偵錯器的連接。
按一下
Build,然後執行目前方案以在測試裝置或模擬器上建置您的應用程式。等待您的應用程式運行,然後按一下
」停止運行該方案或操作以關閉應用程式的初始實例。此初始實例包含幹擾 Crashlytics 的偵錯器。
強制測試崩潰以發送應用程式的第一個崩潰報告:
從測試設備或模擬器的主畫面開啟您的應用程式。
在您的應用程式中,按您使用上面的程式碼新增的「測試崩潰」按鈕。
您的應用程式崩潰後,從 Xcode 再次運行它,以便您的應用程式可以將崩潰報告發送到 Firebase。
前往 Firebase 控制台的Crashlytics 儀表板以查看測試當機。
如果刷新控制台後五分鐘後仍未看到測試崩潰,請嘗試啟用偵錯日誌記錄(下一部分)。
為 Crashlytics 啟用調試日誌記錄
如果您在 Crashlytics 儀表板中沒有看到測試崩潰,則可以使用 Crashlytics 的偵錯日誌記錄來幫助追蹤問題。
啟用調試日誌記錄:
在 Xcode 中,選擇「產品」>「方案」>「編輯方案」 。
從左側選單中選擇“運行” ,然後選擇“參數”標籤。
在「啟動時傳遞的參數」部分中,新增
-FIRDebugEnabled
。
強制測試崩潰。本頁的第一部分描述如何執行此操作。
在您的日誌中,搜尋來自 Crashlytics 的日誌訊息,其中包含以下字串,該字串驗證您的應用程式是否正在向 Firebase 發送崩潰。
Completed report submission
如果您在五分鐘後沒有在 Firebase 控制台的 Crashlytics 資訊中心中看到此日誌或測試崩潰,請聯絡Firebase 支援並提供日誌輸出的副本,以便我們可以協助您進一步排除故障。
下一步
- 透過新增選擇加入報告、日誌、金鑰和非致命錯誤追蹤來自訂崩潰報告設定。