Game Programmer Blog

ゲーム製作に伴うプログラミング技術や開発手法や環境などを公開していきます

アプリのクラッシュについて BugSense導入編(iOS)

色んなサイトで3つ(BugSense,Crittercism,Crashlytics)を比べましたが

正直どれがいいのやら決定的ではなかったので全部試して見る方向で動きます!!

さっそくBugSenseから試していきます。

BugSense導入

 1. アカウント登録

  https://mint.splunk.com/からSIGNUP FOR FREEボタンからユーザ情報を登録

 

 2.BugSenseにプロジェクト登録する

  サインインしてサイトからAdd Projectのボタンから次のような画面に進み

  情報を入力してSUBMITボタンを押す

f:id:TrueSnowman:20140921211050p:plain

 プロジェクト用のKEYが発行されます。

f:id:TrueSnowman:20140921211058p:plain

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分ぐらいでサイトには反映されました。

f:id:TrueSnowman:20140921211100p:plain

感想

アカウント登録から実装まで2時間もあれば試すことが可能でした。

dSYMをアップできるページがあったので詳細な情報を追えるように出来るのかもしれません。

参考にさせて頂いたサイト

スマートフォンアプリのクラッシュログ解析サービス (crittercism と bugsense) を使ってみた - むらかみの雑記帳

iPhone - Crash Report解析サービスのBugSenseを試してみた - Qiita

クラッシュ分析ツールBugSenseでアプリのバグの原因を突き止める。 | 三度の飯とエレクトロン

iOSアプリ開発でもCI/継続的デリバリしようぜ(5):アプリのクラッシュリポートを統計解析できるBugSenseの使い方 (3/3) - @IT

アプリのクラッシュについて 検討編

モバイルアプリのプロジェクト規模としては

マスターを区切りに限定すれば多くの企業で次のような形になるとは思います。

  • 短期プロジェクト

    開発メンバー 数名(10名未満)

    開発期間   数ヶ月 ~ 半年未満

  • 長期プロジェクト

    開発メンバー 十数名

    開発期間   半年 ~ 一年

当然、期間が長ければ長いほど複雑な機能装されより複雑なバグの発生にも繋がります。

関わるプログラマの経験によっては短期プロジェクトでも多くのバグが発生するでしょう。

デバッグ期間内に全てのバグを見つけることが出来れば

ユーザにバグが届くことはありませんがそれは現実にはほぼありえません。

機能追加によるアップデート、DBのテーブル追加、サーバー負荷改善のためのクエリ改善

ありとあらゆる理由で一時でもユーザがバグに遭遇する可能性は常に存在します。

 

そんな中、iOS/Androidアプリがクラッシュした時のどういった手法でアプローチされてますか?

AndroidGoogle Play Developer Console、iOSはiTnuesConnectからクラッシュ情報を見れます。

※私のアプリでは原因は不明ですがiOSでCrashReportsという項目が見れません

 

そこで配信中のアプリで発生するバグを継続的に手に入れることが出来れば最も発生件数の

多いものから対応できたり発生した時間帯などからバグを推測したり出来るのではと思います。

 

色々検索してみると次の3つが候補にあがってきましたので次回はその検証を進めてます。

BugSense   https://mint.splunk.com/

Crittercism   http://www.crittercism.com/

Crashlytics     http://try.crashlytics.com/

 

 

ブログ開設

この度、ブログを開設させて頂きました。

主な目的は多くのエンジニアがBlogをやってる理由と同じです。

プログラムを楽しみながら微力ながら他の方の役に立つ情報が共有できればと思っています。

 

私自身はWindowsNintendoDSPS2PS3Xbox360AndroidiOSなど

様々なプラットフォームでのゲーム開発に運よく関わることが出来ておりますので

そういった部分でも色んな話を織り交ぜられたらと思っています。