はじめに
Firebaseに統合されたCrashlyticsを導入するのに、Carthageを使っているのでマニュアルで追加しました。
その時に少しハマったのでメモします。
エラー
Firebaseのドキュメント通りに進めていた所、Undefined symbols for architecture arm64
というエラーがでてビルドが通りませんでした。
解決手順
stackoverflowの回答を参考に以下の4つを追加すると無事ビルドできました。
target -> Build Phases -> Link Binary with Libraries -> add
から
- Security.framework
- SystemConfiguration.framework
- libc++
- libz
でもまだwarningが残ります。
DEBUG_INFORMATION_FORMAT should be set to dwarf-with-dsym for all configurations.
Make sure your project build settings are generating a dSYM file.
ここやFirebaseのドキュメントを参考に[Debug Information Format] 設定を [DWARF with dSYM File] に設定して解決します。
実装確認時のポイント
最後にちゃんと実装できたかFirebaseのドキュメント通りに確認します。
シミュレータで確認していました。ここでのポイントは
- 最初はXcodeのRunで起動してStopで停止する。
- 次にXcodeのRunじゃなく、シミュレータ上でアプリアイコンをタップして起動、クラッシュさせる。
- その後にXcodeのRunで起動すると、logでレポート送っているのが確認できました。
dSYMのアップロード
FirebaseコンソールのCrashlyticsのDSYMが不足してると警告がでていたので、iTunes connectのマイAPP > アクティビティ > すべてのビルド > ビルド番号 からdSYMをダウンロード。
$ zip -r dSYM.zip appDsyms
zipしかアップロードできないようなのでzipにしてアップロードしました。