itok's Lab

昔の開発ネタを記録として残してます

クラッシュレポート拡張:Smart Crash Reports

多種多様な便利拡張モジュールを作っている unsanity のクラッシュレポート拡張モジュール Smart Crash Reports。OS 標準のクラッシュレポートに独自の連絡先を付加出来ます。こんな感じで

左下が標準の「アップルへ送信」ボタン、右下が拡張された「XXX とアップルへ送信」ボタン

この拡張はユーザさんに Smart Crash Reports の本体をインストールしてもらう必要があるのですが、アプリケーションへの導入はいたって簡単(プラグインとかだとちょっとコードを書かないといけないっぽい)。基本的には Info.plist に項目を追加するだけです。

SmartCrashReports_CompanyName 会社名とか、ソフトウェアの製作元
SmartCrashReports_EmailTicket http://www.unsanity.com/goto/email-ticket/にて発行される自分のメールアドレスとの関連ID
SmartCrashReports_URL レポートを独自CGIなどで処理する場合のCGIのURL
SmartCrashReports_CommentsTemplate レポート送信時に付加されるコメントのテンプレート(オプション)

SmartCrashReports_EmailTicket と SmartCrashReports_URL はどちらか一つは必ず指定してください。そして、設定はこれだけです。

前述のように、ユーザさんへのインストールを促す必要もありまして、そのためには実際に Smart Crash Reports をインストールした時についてくる SDK 内の SmartCrashReportsInstall.o をアプリケーションに組み込んで、アプリケーション起動時のソースコード(SmartCrashReportsInstall.h をインクルード)に以下を追加。

Boolean authenticationWillBeRequired = FALSE;
if (UnsanitySCR_CanInstall(&authenticationWillBeRequired)) {
    UnsanitySCR_Install(authenticationWillBeRequired ? kUnsanitySCR_GlobalInstall : 0);
}

これでアプリケーション起動時に Smart Crash Reports のインストールを促すダイアログが表示されます。

で、どんなレポートが飛んでくるかっていうと、基本的にはクラッシュログのそのまんま。なんですが、ハードウェアのスペックなんかも一緒に教えてくれます。そして、メール通知だけにしていてもウェブページもちゃんと用意してくれるようで、自分用の管理ページでレポートの一覧を管理出来たりするみたい(デモページがあります)。なんと無料でここまでやってくれるってすごいですよね。