LoginSignup
20
21

More than 5 years have passed since last update.

Crashlyticsを初めて導入した時にハマったことまとめ

Posted at

先日初めてiOSアプリをリリースし、アプリの中にCrashlyticsを導入したのですが、いくつかハマった点があったのでまとめました。Crashlytics入れたのにうまく動かない!ということがあって、もし以下のケースに当てはまる場合は参考にしていただけると嬉しいです。

Crashlyticsの導入手順はasakaharaさんのこちらの記事が丁寧でわかりやすいです。

Crash Report解析サービスのCrashlyticsを試してみた

参考までに現在の環境は以下のとおりです。今後改善することもあるかもしれません。

  • OS: Mac OS 10.9.4 Mavericks
  • XCode: version 5.1.1

Project作成はSingle View Projectを選ぶ

まず最初projectを作る際に気をつけないといけないのは、 「Single View Project」 を選んでおくことです。
自分は画面ごとにxibを作る開発スタイルで、最初に 「Empty Application」 を選んで進めていたらなぜかクラッシュレポートが届きませんでした。

アプリを起動したらUnable to locate application iconというエラーが出る

作りたてのプロジェクトにCrashlyticsを入れると、以下の様なエラーログが出ると思います。

2014-07-27 11:23:04.283 sample[925:3603] [Crashlytics] Unable to locate application icon

Crashlyticsのdashboardでアイコンを表示させることができない時に表示されるエラーのようです。
Images.xcassetsでAppIconを設定してあげないとダメなようでした。Icon.pngを放り込むとDEBUG環境だとアイコンが表示されるので、気づかない場合があるかもしれません。

ググってたら具体的な解決策が出ていなくて、なぜかTwitterのDMで回答が送られていて分からなかったので結構ハマりました…。

[[Crashlytics sharedInstance] crash] でクラッシュレポートが届かない

Crashlyticsを自分のアプリに組み込んだ後に、「実際にクラッシュレポートが届くかどうか確認したい!」というケースがあると思います。

強制的にクラッシュするにはどうするか、については公式サポートページに書いてありました。

Is there a quick way to force a crash? – Support for Crashlytics

こちらに書いてあるとおり、[[Crashlytics sharedInstance] crash]でクラッシュさせることはできるようです。

ですが、ウィザードが完了した後にこちらのコードを挿入し、シミュレータや実機でクラッシュさせてもなぜかレポートが届きませんでした。
(ウィザード内で、アプリを起動させてくださいという画面が出るタイミングでコードを挿入してから起動させるとレポートが届く場合がありました)

導入後クラッシュレポートを送るには、以下の様なクラッシュさせるコードを入れて試してみるとよいでしょう。

    NSArray *array = [NSArray array];
    id data = array[0];

実際にこちらのコードをUIButtonをおした時のIBActionへ挿入すると、クラッシュレポートが届きました。

スクリーンショット 2014-08-03 8.11.46.png

20
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
21