LoginSignup
2
0

More than 1 year has passed since last update.

Firebase ClashlyticsをSPMで導入する際に困ったこと

Posted at

FirebaseのClashlyticsをSwift Package Managerを使って導入するときに詰まった点があったので備忘録

FirebaseApp.configure()をしておく

(ここ)[https://firebase.google.com/docs/ios/setup?authuser=0#initialize-firebase]にあるように、pplication:didFinishLaunchingWithOptions:内でFirebaseApp.configure()を実行しFirebaseを初期化する必要あり(Cocoa PodsでもCarthageでも一緒ですが)

RunScriptでスクリプトの記述

(ここ)[https://firebase.google.cn/docs/crashlytics/get-started?hl=ja&platform=ios#set-up-dsym-uploading]に書いてあるように、レポートを作成する際にプロジェクトのデバッグ シンボル(dSYM)ファイルが必要らしい。これはアプリをビルドする度にXcode側で生成し、dSYMファイルをアップロードする必要があるので、RunScriptに下記のコマンドを実行すると書いてあるが

"${PODS_ROOT}/FirebaseCrashlytics/run"

これはCocoa PodsでClashlyticsを導入した時のスクリプトなので、spmの際は下記のスクリプトを実行しなければいけない

${BUILD_DIR%Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run

RunScriptのinputファイルには下記の二つを指定

${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)

実際にクラッシュレポートを送るときはsimulatorとの接続を切る

これで詰まったのだが、XcodeでRunを実行し、立ち上がったアプリだとクラッシュレポートが送れないらしい。なのでアプリを立ち上げた後にXcode側で□ボタンでアプリを停止する。そしてsimulator側でホームボタンを二回押し、該当アプリを上にスライドで消去し、もう一度アプリを一から立ち上げて使えばレポートが送信できるようになる。レポートの送信タイミングはクラッシュした後にXcodeで再びアプリをRunしたときであり、その際にログ画面にCompleted report submissionと表示されていれば送信できているということになる。

2
0
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
2
0