利用 Fabric 的 Crashlytic 服務來收集 APP 當機的報告

法蘭克的 iOS 世界
7 min readApr 8, 2018

Fabric 原先是由 Twitter 所發起的一間公司,後來被 Google 所買下,也被整合至 Firebase 下了。而 Crashlytic 則是 Fabric 眾多服務下的其中一種服務,它可以用來收集使用者在使用 App 過程中所發生的 Crash 報告,並可確切的收集到第幾行造成 Crash,重點是它完全免費,而且設定方式也只要照著官方的引導即可輕鬆完成。

雖然 iTunes Connect 後台也有 Crash 報告,但我們只會得到有幾次的當機報告,這顯然不是我們所要的。我們要的是可以很清楚明白的告訴我們說 Crash 在第幾行讓我們快速的找到錯誤並修正,而 Crashlytic 不僅僅如此而己,它還會即時的透過 Email 將 Crash 報告寄送到註冊的信箱裡,而 Crashlytic 唯一要注意的就是 Crash 報告是透過網路將資訊上傳到後台,這意味著使用者一定得在有網路的環境下才有效果的,以下就照著法蘭克的步驟一步一步把 Crashlytic 導入專案。

實作

▼至 Fabric 官方網站填寫相關資訊建立帳號

▼至信箱查看有無收到確認信

▼有的話點擊 Confirm 導到 Fabric 官方網站

▼選擇 Apple IDE

▼下載 Mac 應用程式

▼下載並安裝 Fabric 應用程式

▼利用剛剛註冊的帳號登入 Fabric

▼選擇要導入 Fabric 的專案

備註:如果清單上沒有的話,可點擊 Browser 選擇所要導入 Fabric 的專案

▼選擇 Crashlytic 並點選 Install 來執行安裝

備註:安裝 SDK 的官方有提供兩種一種,一種是透過 CocoaPods 另一種則是 Xcode。官方有說明如果偵測到 Xcode 專案裡 Podfile 則會出現透過 CocoaPods 安裝的畫面,Demo 專案因為是全新專案,故無。

▼複製紅框處的 Script(畫面 loading 中表示尚等待我們設定中)

▼在專案的 Build phase 加入被複製的 Script,並在完成後執行 Build

依圖片上的數字順序找到 New run script phase
在 Run Script 貼上被複製的 Script
Command + B 執行 Build
執行完後的畫面跳轉

▼透過拖曳的方式進行安裝 SDK

拖曳
安裝完成後

▼依 Fabric 指示在 AppDelegate.swift 引入 Fabric 和 Crashlytic 的 SDK,並在 application(_:didFinishLaunchingWithOptions:) 註冊它,還有多加入 Fabric.sharedSDK().debug = true 才能在 debug 模式收到 Crash Report

▼Command + R 執行應用程式

安裝成功 Fabric 視窗會顯示 Installation Complete

▼刻意造成 Carsh 來測試看看是否有將報告上傳到 Fabric 後台

Fabric 很貼心的將會 Crash 的 Sample Code 提供給我們(笑

將 Sample code 都貼到 ViewController.swift

到 Projcet 的 Build Setting 下將 Debug 的設定調整為 DWARF with dSYM File 如此才能在 debug 模式下收到 Crash Report

點選模擬器的 Crash 按鈕讓程式 Crash

備註:必須要關閉模擬器,再次重新啟動模擬器,Crash Report 才會送到 Fabric 後台。

▼經過幾分鐘後會收到 Crash 的信,此時也可登入 Fabric 後台查看 Crash Report

註冊信箱收到的 Crash Report 信件
Fabric 後台
程式碼 Crash 在第 33 行

如果在後台沒有收到 Crash Report,有可能是以下三種原因所造成,請逐步檢查

  • 未將 Project 下的 Debug Information Format 設為 DWARF with dSYM File
  • 未在 AppDelegate.swift 下的 application(_:didFinishLaunchingWithOptions:) 加入 Fabric.sharedSDK().debug = true
  • 發生 Crash 後,必須重啟 App 才會將 log 送到後台

結論

既然 Fabric 已被 Google 買下,所以 Google 當然也把它整合到 Firebase 後台了,所以,倘若我們想在 Firebase 後台看到 Crash 相關的數據也不是一件難事,只要登入 Firebase Console 並把它和 Fabric 關連結起來即可。

如果您喜歡我的文章,請多按幾下「拍手」給我鼓勵,或是按「follow」讓我持續提供好文章給您。

--

--