iOSアプリ用のクラッシュ解析ツールはとても充実していると思う。
というか、ストアにリリースしているアプリなら、Appleがもともと提供しているクラッシュログだけでも、事足りるかもしれない。
でも、それではダメだったんだ。なぜなら、Enterpriseだからさ。
…というこで、例えば、Enterprise等でリリースしているアプリにクラッシュ解析を導入したいとかニーズはあると思う。その選択肢として、HockeyAppがある。
HockeyApp
https://www.hockeyapp.net/
数あるクラッシュ解析ツールの中で、HockeyAppのメリットは以下に尽きる。それは、
Windowsでも使える。しかも、UWPだけではなく、WPFでも使える。
と、いうこと!
iOS、Android、Windows(UWP、デスクトップ)でもいけるとなれば、業務アプリ開発者にとってはとてもうれしい。
ということで、iOSへのインストール方法。
HockeyAppをiOSにインストールする
CocoaPodsでもインストールできる。CocoaPodsが使える場合はそちらの方がカンタン。
後は、mac用のアプリがあるので、それを使ってもできるみたい。というか、それを使うのが普通なのだろう。
だがしかし、ここでは、マニュアルでやる手順を記述する。
参照元
https://support.hockeyapp.net/kb/client-integration-ios-mac-os-x-tvos/hockeyapp-for-ios
導入手順
0. HockeyAppのアカウントを作成して、管理ページにアプリを登録しておく。
1. SDKをダウンロードする。
2. ダウンロードしたファイルをプロジェクトへコピー。
ダウンロードしたファイルを解凍し、Finderで、フォルダごと、まるっとコピーする。
あくまでもFinder上での操作のみで、Xcodeは使わない。
今回はプロジェクトフォルダのルートに配置した。
3. HockeySDK.embeddedframeworkディレクトリをプロジェクトへ追加する。
Xcodeでプロジェクトを開いて、Finder上から、HockeySDK.embeddedframeworkをドラッグアンドドロップ。
表示されるポップアップでは、Create Groups、Copy Item if neededにチェックをつけた。
で、Linked Frameworks and Librariesにも加わっていたし、大丈夫そう。
4. コードを記述。
AppDelegate.swiftに、以下の初期化のコード3行をそのままコピペして、IDを管理画面に表示されていたIDに変更。importするのも忘れずに。
1 2 3 4 5 |
import HockeySDK BITHockeyManager.shared().configure(withIdentifier: "xxxxxxxxxxxxxxxxxxxxxxx") BITHockeyManager.shared().start() BITHockeyManager.shared().authenticator.authenticateInstallation() |
5. さっそく試してみる。
ボタンをタップしたときに、クラッシュを意図的に発生させるよう、以下コードを実装。
1 2 3 4 5 6 7 8 9 10 11 |
//パターン1 @IBAction fileprivate func handleFatalError(_ seder: UIButton) { fatalError("debug view controller fatal error.") } //パターン2 @IBAction fileprivate func handleException(_ sender: UIButton) { var array = [String]() let none = array[999] print(none) } |
で、debugビルドで起動すると、以下ログが出てくる。
内容は、デバッガーをアタッチさせた状態(つまり、普通にXcodeの再生ボタンでアプリをビルドして起動した場合)では、クラッシュを検知できないらしい。
デバッガーをアタッチさせないで起動すれば、debugビルドでも動作は試せるっぽい。
やり方は、一度シミュレータで起動したら、今度は、XcodeのRunボタンから起動しないで、シミュレータのホーム画面からアイコンをタップして起動すればよい。
実機も同じで、XcodeのRunボタンから起動しないで、アイコンをタップして起動させる。
立ち上がったら、意図的にクラッシュさせてアプリを落とす。
で、もう一度アプリを立ち上げると…
クラッシュ情報を送るかどうかのポップアップきたー。
デフォルトの動作はユーザに操作させるようになっているが、勝手に送るように設定することもできる。
Send Reportをタップして、HockeyAppの管理画面を見てみると、さっそくクラッシュ情報が届いていた。
ただ、クラッシュ情報は、このままでは、メモリアドレスの羅列で、何がなんだかわからない。
これは、シンボルファイルが必要で、別にアップロードする必要がある。
とりあえず、インストールはOK!
コメント