アプリのクラッシュについて BugSense導入編(iOS)
色んなサイトで3つ(BugSense,Crittercism,Crashlytics)を比べましたが
正直どれがいいのやら決定的ではなかったので全部試して見る方向で動きます!!
さっそくBugSenseから試していきます。
BugSense導入
1. アカウント登録
https://mint.splunk.com/からSIGNUP FOR FREEボタンからユーザ情報を登録
2.BugSenseにプロジェクト登録する
サインインしてサイトからAdd Projectのボタンから次のような画面に進み
情報を入力してSUBMITボタンを押す
プロジェクト用のKEYが発行されます。
3.BugSenseをインストール
CocoaPodsを使ってインストールしました
4.プロジェクトへ設定を追加
Linked Framweworks and Librariesに2でインストールしたBugSense-iOS.frameworkを追加
5.プロジェクトへコードを追加
2で発行されたKEYをプロジェクト内の関数に埋め込む
#import <BugSense-iOS/BugSenseController.h>
- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[BugSenseController sharedControllerWithBugSenseAPIKey:@"BugSense_API_KEY"];
return YES;
}
6.クラッシュレポートを送りサイトでの表示を確認
■テストコード
NSArray *array = [NSArray array];
id data = array[0];
レポート結果の一部を下記に抜粋しましたが反映までは3分ぐらいでサイトには反映されました。
感想
アカウント登録から実装まで2時間もあれば試すことが可能でした。
dSYMをアップできるページがあったので詳細な情報を追えるように出来るのかもしれません。
参考にさせて頂いたサイト
スマートフォンアプリのクラッシュログ解析サービス (crittercism と bugsense) を使ってみた - むらかみの雑記帳
iPhone - Crash Report解析サービスのBugSenseを試してみた - Qiita
クラッシュ分析ツールBugSenseでアプリのバグの原因を突き止める。 | 三度の飯とエレクトロン
iOSアプリ開発でもCI/継続的デリバリしようぜ(5):アプリのクラッシュリポートを統計解析できるBugSenseの使い方 (3/3) - @IT
アプリのクラッシュについて 検討編
スマホアプリのプロジェクト規模としては
マスターを区切りに限定すれば多くの企業で次のような形になるとは思います。
- 短期プロジェクト
開発メンバー 数名(10名未満)
開発期間 数ヶ月 ~ 半年未満
- 長期プロジェクト
開発メンバー 十数名
開発期間 半年 ~ 一年
当然、期間が長ければ長いほど複雑な機能装されより複雑なバグの発生にも繋がります。
関わるプログラマの経験によっては短期プロジェクトでも多くのバグが発生するでしょう。
デバッグ期間内に全てのバグを見つけることが出来れば
ユーザにバグが届くことはありませんがそれは現実にはほぼありえません。
機能追加によるアップデート、DBのテーブル追加、サーバー負荷改善のためのクエリ改善
ありとあらゆる理由で一時でもユーザがバグに遭遇する可能性は常に存在します。
そんな中、iOS/Androidアプリがクラッシュした時のどういった手法でアプローチされてますか?
AndroidはGoogle Play Developer Console、iOSはiTnuesConnectからクラッシュ情報を見れます。
※私のアプリでは原因は不明ですがiOSでCrashReportsという項目が見れません
そこで配信中のアプリで発生するバグを継続的に手に入れることが出来れば最も発生件数の
多いものから対応できたり発生した時間帯などからバグを推測したり出来るのではと思います。
色々検索してみると次の3つが候補にあがってきましたので次回はその検証を進めてます。
BugSense https://mint.splunk.com/
Crittercism http://www.crittercism.com/
Crashlytics http://try.crashlytics.com/