2009-07-10 32 views
9

私はLeopard以上をターゲットとするCocoaアプリを開発しています。クラッシュレポーターを追加することを考えています(私のアプリはクラッシュしないと思っていますが、本当のここ)。私は本当に始める前に、ほとんど概念的な質問があります。Crash Reporter for Cocoa app

1)これは概念的にどのように機能しますか?クラッシュが発生したときを知ってレポーターを呼び出すのですか?私はクラッシュを探しているデーモンを持っているのですか?次回報告するためにアプリが起動するまで待つのですか?

2)これはココアで行うことができますか?あるいはCarbonやIOKitなどに浸漬する必要がありますか?

3)これは良い考えですか? Mac OS Xにはすでにクラッシュレポーターが組み込まれていますが、開発者としてはクラッシュログを見ることはできません。私のアプリは頻繁にクラッシュするとは思わないが、率直に言って、私はただ素朴ではなく、このようなことをしたい。

これに関するあなたの考えや意見は何ですか?

+1

誰もがこの投稿に2013年と同じように回答していますか?すべての回答はかなり古くなっていますが、質問はまだまだ関連性があります。 –

答えて

4

私はUKCrashReporterで多くの成功を収めました。コードは簡単で、アプリケーションのL & Fに合わせて変更するのが簡単です。

PLCrashReporterが面白いようです。

スマートクラッシュレポーターから遠く離れているのは、あなたのアプリが予期せぬ場所にコードを注入することに感謝し、脆弱な(おそらくリリースされたアプリでは危険な)アプローチだと思うからです。

+0

2013年の回答を更新してもよろしいですか?あなたの新しい答えはまったく違うかもしれません。 –

1

私はいくつかのアプリがSmart Crash Reporterかそれとも多少の変種を使用しているのを見ました。あなたのアプリケーションがクラッシュすると、通常のAppleクラッシュダイアログが表示され、「Appleとあなたの両方に送信」と表示される特別なボタンが表示されます。

1

私はSmart Crash Reporter多くのユーザーのために、そしてあなたのアプリのために悪い報道を受ける良い方法です(値をつけられたかどうか)PLCrashReporterまたはUKCrashReporter http://zathras.de/angelweb/sourcecode.htm彼らは何をすべきかについてのいくつかのアイデアを与えて、コードスペース。

2

他は、この質問によく答えて、いくつかの良いサンプルコードを指摘しました。

あなた自身でコーディングするのはかなり簡単です。戦略は、一般的に次のとおりです。

  • キャッチ適切な信号
  • 起動、アプリケーションのバンドル
  • の内側に住んでいる別のクラッシュレポーターアプリがクラッシュレポーターアプリは、アプリの最新のクラッシュログエントリを検索し、それを送信します(POST、電子メールなど)
1

別のオプションは、GoogleのBreakpadです。これはCocoaフレームワークラッパーを持ち、MozillaのSocorroサーバーと互換性があります。これはFirefoxで使用され、CocoaフレームワークはCaminoの現在のベータ版で使用されています。クライアント側の統合はかなり簡単ですが、私はSocorroサーバーのインスタンスを実行するために必要なものを見たことはありません。

2

私も自分自身をロールバックしました:SFBCrashReporter

それについての小さなpost on my blogがあります。

+1

私はこれを私のアプリで使っており、とても満足していました。現在のバージョンはGC対応アプリ用に設計されているため、GC以外のアプリで使用するには少々の調整が必要です。私もUKCrashReporterを試しましたが、これはより良いと思っていました。 – hasseg

0

私はILCrashReporterを使用していますが、実際にうまく機能します。この方法は電子メールに基づいているため、Fogbugzとうまく動作します。

+0

ILCrashReporterはSnow Leopardで動作していません...どのような手掛かりですか? – Devarshi