Edited at

最新バージョンのdSYMアップロードをほぼ自動化する

fastlaneのdownload_dsymsupload_symbos_to_crashlyticsを組み合わせれば,dSYMのダウンロードからアップロードまでを簡単に自動化できます.

ただし,bitcodeを有効にしている場合には,App Store Connect上での処理完了を待つ必要があります.

メール受信をトリガにする方法などもありますが,自分のチームではもう少しお手軽な方法で(ほぼ)自動化しているので,そのやり方を紹介します.

まずは以下のlaneを作成します.


Fastfile

lane :refresh_dsyms do |options|

version = options[:version] || 'latest'

download_dsyms(
version: version
)

upload_symbols_to_crashlytics(
api_token: ENV['CRASHLYTICS_API_TOKEN']
)

clean_build_artifacts
end


作成したlaneは以下のように使用します.

# 最新バージョンのdSYMをアップロード

$ fastlane refresh_dsyms

# 任意のバージョンのdSYMをアップロード
$ fastlane refresh_dsyms version:1.2.3

自分のチームでは,これらを以下のようなやり方で運用しています.


  1. 毎週,CI上で fastlane refresh_dsyms を実行し、最新バージョンのdSYMに更新


    • 毎週1回のペース(金曜に申請し、翌週リリース)で定期的にリリースをしているので、

      土曜0時に実行すれば最新版のdSYMに更新できる



  2. 非定期リリース(Hotfixなど)があれば,ローカルからバージョンを指定(= version: x.x.xを指定)してdSYMを更新

ローカルでの実行も混ざり得るのでもっといい感じの運用にしたいところではありますが,今のところ定期的なリリースサイクルを回せているので,手動での更新はほとんど必要ないです.

チームのスケジュールを考慮することで,完全自動化までは行かなくとも,それに近い結果を手軽得ることができます.