LoginSignup
10
5

More than 3 years have passed since last update.

dSYMのアップロードはBitrise/fastlaneで自動化しとくといいぞ

Last updated at Posted at 2019-07-16

TL;DR

  • dSYMの取得とアップロードをするlane作成
  • BitriseにWorkflow作成
  • Workflowをスケジューリングする

前書き

Crashlyticsを利用していると, FabricへのdSYMのアップロードを求められることになります.
これをAppStoreConnectへのリリースの度に手動で行ってもいいのですが, 上げ漏れが起きたり, めんどくさかったり, めんどくさかったり, めんどくさかったりしますよね.
なので, 日次でdSYMのアップロードを行うようにBitrise上でスケジューリングすることで, 煩わしさから解放されましょう.

FastfileにdSYM関連の処理をするlane作成

Fastfile
desc "Refresh dSYMs"
lane :refresh_dsyms do

  download_dsyms(
    app_identifier: "tihimsm.my_app",
    version: "latest" # 最新のdSYMを取得するように指定
  )

  upload_symbols_to_crashlytics # dSYMをCrashlyticsへアップロード

  clean_build_artifacts # ローカルのdSYMを削除

  slack(message: "dSYMs are refreshed!")

end

download_dsymsでAppStoreConnectにあるdSYMをダウンロードするのですが, オプションでversion: "latest"を指定しています.
なにも指定しないとすべてのdSYMを取得して, けっこう時間がかかってしまうので要注意です.
あとでBitriseの方でスケジューリングをするのですが, 毎日このlaneが走るようにしておけば, よほどリリースの頻度が高くない限りは漏れなくアップロードできるはずです.

追記(2019/12/02)

download_dsymsのversionに、"live"を指定すると、
公開中アプリのDSYMをStoreからダウンロードできるようになったようです。
公開版よりも新しいアプリがTest Flightに存在しても、そのDSYMは無視してくれます。
(fastlaneの2.134.0以降)

@zigenin さんより情報提供いただきました, ありがとうございます!

clean_build_artifactsはローカルにあるdSYMファイルを削除してくれるもので, Bitriseでlaneを走らせる限りはあまり意味がないのですが, ローカルでlane叩く可能性も考えて削除するようにしてます.
ちなみに, 今回はdSYMを削除してくれるclean_build_artifactsですが, 実はとても汎用性の高いactionで, 状況にあわせてよしなに削除してくれるとても賢いやつです.
詳しくは公式ドキュメントをご参照ください.

BitriseにWorkflowを設定

Workflowはとても簡単です.
リポジトリをCloneしてきてfastlaneでrefresh_dsymsを起動させるだけです.
スクリーンショット 2019-07-16 3.41.41.png

Workflowをスケジューリングしよう

Buildsタブの画面右上の方にStart/Schedule a Buildというボタンがあるので, そこからスケジューリングの設定を行います.
スクリーンショット 2019-07-16 3.42.24.png
上のような画面で設定が行えます.

  • 時間
  • 曜日
  • ブランチ
  • Workflow を設定することで, 自動でWorkflowが起動できます. 上の例だと毎日AM01:00に起動するようになっています.

これで毎日AppStoreConnectの最新のdSYMを取得して, Crashlyticsへアップロードを自動で行うことができるようになります.

まとめ

いかがでしょうか?
地味な内容でしたが, 毎度手作業でやってると意外とめんどくさかったり漏れがあったりしますし, 人がやらなきゃいけない作業でもないので, こういう類のものは自動化してしまうに限ります.

簡単に設定できるわりに, 毎日SlackにdSYMがアップロードされた通知が来るので「うんうん, 今日もdSYMアップロードご苦労」という気分になれます笑
コスパ良くてけっこうおすすめなので, 設定してない方はぜひやってみてください!

10
5
2

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
10
5