2012-08-06 144 views
3

我們正在評估針對iOS應用崩潰報告的第三方解決方案或自定義解決方案。我們正在研究Crashlytics,BugSense,Testflight。它們似乎都服務於這個目的,即實時崩潰報告。 此外,我們一直在尋找沿着Xcode 4.2 debug doesn't symbolicate stack calliOS的崩潰分析和報告

2個問題的線條定製解決方案的實施:

  1. 是否與第三方解決方案(Crashlytics,BugSense等)提供了一個定製的解決方案的優勢,當唯一我們希望將它用於崩潰報告的目的是什麼?
  2. 我們可以將多少功能添加到自定義異常處理程序中,例如如果我想通過HTTP發佈stacktrace到服務器,我可以在異常處理程序中執行它,還是需要等到我的應用程序下次啓動才能發送日誌?異常處理程序應該多久退出?

感謝, Hetal

回答

3

你不應該做自己的崩潰報告的解決方案,但因爲寫一個可靠和安全的崩潰報告很難使用現有的解決方案。 PLCrashReporter的開發者Landon Fuller解釋了爲何在這篇文章中:Reliable Crash Reporting

通常在發生崩潰時運行任何非異步安全的代碼,應該避免不惜代價!這意味着任何Objective-C代碼都必須避免。這也意味着您的崩潰報告只應在下次發佈時發送到您的服務器。您也不應該依賴於默認使用PLCrashReporter的第三方框架,因爲框架所做的任何操作都應該以異步安全的方式實現。

編寫你自己的異常處理程序幾乎不會像基於PLCrashReporter的任何細節,優秀和可靠。

除了你提到的第三方解決方案,也有開源解決方案QuincyKit(基於PLCrashReporter與同伴基於PHP的基本服務器解決方案)和HockeyApp,也可與客戶端QuincyKit使用。 (注:我是這兩個解決方案的開發者之一)