Visual Studio Mobile Centerのクラッシュレポート機能をiOSアプリで試してみた
クラッシュレポート機能を試してみる
こんにちは!モバイルアプリサービス部の加藤潤です。
前回、VSMCを使ってアプリを配布してみました。
今回はクラッシュレポート機能を試してみたいと思います。
VSMCは記事執筆時点でPreview版です。そのため、正式版リリース時には機能が異なる可能性がありますのでご注意ください。なお、Preview版の間は無料で利用できます。
クラッシュレポート機能については公式ドキュメントに以下の記載があります。
Crashes are grouped together by similarities like the reason for the crash and where the occur in the app. It is possible to inspect each individual crash report for the last 3 months, after that a stub of 25 crashes will be kept.
クラッシュの原因や発生場所によってグルーピングされるようです。
また、直近3ヶ月分のクラッシュレポートの確認ができるようです。
Mobile Center SDKを組み込む
クラッシュレポート機能を使うにはアプリにMobile Center SDK for iOSを組み込む必要があります。
SDKはMITライセンスの下に公開されています。
※記事執筆時点でSDKはパブリックプレビューです。
SDKのバイナリファイルをダウンロードしてXcodeプロジェクトに組み込むことも可能ですが、CocoaPodsを使った方が簡単です。
Podfileにpod 'MobileCenter'
もしくは pod 'MobileCenter/MobileCenterCrashes'
を記述します。
前者はCrashesはもちろんの事、Analyticsも含むMobileCenterの全てのサービスを使う場合の記述です。
後者はCrashesサービスのみ使う場合の記述です。
今回は後者の書き方で試しました。
上記を記述し、pod install
を実行すればSDKがダウンロードされます。
SDKのセットアップ
pod install
完了後、.xcworkspaceを開き、AppDelegate.swiftに以下のimport文を追加します。
import MobileCenter import MobileCenterCrashes
さらに、application(_:didFinishLaunchingWithOptions:)
メソッド内に以下を記述します。
MSMobileCenter.start("{Your App Secret}", withServices: [MSCrashes.self])
{Your App Secret}
の部分はご自身の環境に合わせて設定してください。
AppシークレットはGetting Startedのトップページで確認できます。
または「Manage app」からも確認できます。
クラッシュするコードを仕込む
以下のように画面に1つボタンを配置し、ボタンタップ時にクラッシュさせてみます。
クラッシュするコードはこちらです。
@IBAction func didTapCrashButton(_ sender: Any) { let str: String! = nil print(str) // クラッシュ! }
dSYMファイルをアップロードする
クラッシュログを人間が読める形にするためにはデバッグシンボルファイル(.dSYM)を取得してVSMCにアップロードする必要があります。
DebugビルドでdSYMファイルを生成する
今回はDebugビルドで試してみます。
DebugビルドではデフォルトでdSYMファイルを生成しない設定になっているので設定を変更します。
ビルドターゲットを選択し、Build Settings > Build Options > Debug Information FormatのDebugをクリックし、
「DWARF with dSYM File」に変更します。これによりDebugビルド時にもdSYMファイルが生成されるようになります。
ビルドしてdSYMファイルを取得する
ビルドしたらProductsから.appファイルを選択し、「Show in Finder」でFinderを開きます。
開いたフォルダ内に.dSYMファイルがあります。
VSMCにdSYMファイルをアップロードする
dSYMファイルが取得できたら、VSMCにアップロードします。
実行結果
何回かボタンをタップしてクラッシュさせてみました。 以下のように管理画面上にクラッシュの一覧が表示されました。
一覧をクリックしてクラッシュの詳細を見ると、スタックトレースやデバイスの種類、OSのバージョンを確認することが出来ました。
おわりに
今回はVSMCのクラッシュレポート機能を試してみました。
UI上、dSYMファイルのアップロードが成功したのか失敗したのかよくわからなかったり、クラッシュログのダウンロード機能が無い等、改善してほしいところは多々ありますが、まだプレビュー版ですので今後に期待です。