はじめに
Firebase/Crashlyticsでクラッシュの原因知りたいですよね?
原因を知るためにiOSアプリの場合はアプリのdSYMをFirebase/Crashlyticsにアップロードする必要があります。
本記事では、Bitriseとfastlaneを組み合わせて自動でアプリのdSYMをアップロードする方法の
ポイントについて書いてみます!
大まかな処理の流れ
ざっと2セクションです。
- BitriseでdSYMをFirebaseにアップロードするWorkFlowを走らせる
- WorkFlowに含まれているfastlane(dSYMアップロード用のlane指定)でAppStoreConnectに上がってる最新版アプリのdSYMをFirebaseにアップロード
Xcodeの設定
Debug Information FormatのReleaseをDWARF with dSYM File
ReleaseBuildを行う場合はdSYMを書き出すように設定
Enable Bitcodeをtrue
trueにしておくことで、Apple側でdSYMが作成されこのdSYMがAppStoreConnectからダウンロードできるようになるっぽい。
![スクリーンショット 2019-02-21 18.40.44(3).png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F75593%2F7da8586d-ec24-b6ac-f537-e73039b0bc98.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=eb03581166e3c8680fd794f9dbe2e8ec)
fastlaneでdSYMアップロード用のlane作成
アプリの最新版を指定
version: 'latest'
毎回WorkFlow回すごとにdSYMが溜まらないようアップロードした後に削除
clean_build_artifacts
desc "Automatically download and upload dSYM symbolication files from iTunes Connect for Bitcode iOS apps using fastlane"
lane :upload_dsyms do
download_dsyms(
version: 'latest'
)
# FirebaseにdSYMをアップロード
upload_symbols_to_crashlytics(gsp_path: "[GoogleService-Info.plistのPATH]")
# Delete the local dSYM files
clean_build_artifacts
end
Bitriseの設定
一部抜粋になりますが、
fastlaneをworkflowに組み込んでdSYMアップロード用のlane(upload_dsyms)を指定