Xcode
Crashlytics
fabric

Carshlyticsで missing dSYMsというエラーメッセージが表示される

swift3で作成したiOSアプリにCrashlyticsを導入してリリースした後、管理画面からクラッシュレポートを確認しようとしたら It looks like we are missing dSYMs to process crashes for the versions below. というエラーが表示されてクラッシュレポートが見れない状態になっていた。

Crashlytics-management-screen.png

ちょっと手間取ってしまいましたが、stack overflowの回答を参考にして解決できたので、記録のために解決方法を書いていきたいと思います。

dSYMsファイルのアップロード

クラッシュレポートが閲覧できない直接的な原因はdSYMsファイルをCrashlytics上にアップロードしていない事が原因でした。

1. iTunesConnectからdSYMをDL

[iTunesConnect]へ自分のアカウントでログインして、マイAppからアプリを選択 > アクティビティへと移動し、最新版のアプリのビルド番号をクリックします。

Screen_Shot_2017-09-15_at_9_56_52.png

ここで選択したビルド番号の詳細ページの中にあるdSYMをダウンロードをクリックしてappDsyms.zipというzipファイルをDLします。

Screen_Shot_2017-09-15_at_10_01_27.png

2. CrashlyticsへdSYMファイルのzipファイルをアップロード

後は先ほどのCrashlyticsの管理画面へzipファイルをアップロードすればOKです。これでクラッシュレポートが確認できるようになりました。

Screen_Shot_2017-09-15_at_10_08_26.png

dSYMとは

dSYMについてちゃんと理解できていなかったので改めて調べる。

Appleのドキュメントにあるクラッシュレポートの分析ではdSYMについて以下の様に触れられている箇所があります。

該当するビルドおよび.dSYMファイルを収容したアーカイブがあれば、Xcodeは自動的にクラッシュレポートをシンボル変換します。これは、メモリアドレスを、人が読んで理解しやすいシンボルに置換する処理です。

他にも色々調べて見ると、どうやらdSYMファイルを使うことで、アプリがクラッシュした際のスタックトレースが格納されたclashファイルをシンボル変換してくれるようです。(そういうもんだ。ってくらいにしか理解できていない。)